iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
自我挑戰組

API 全攻略系列 第 26

Day 26:第三方 API 使用(以 GitHub API 為例)

  • 分享至 

  • xImage
  •  

前言

在前面的章節中,我們大多專注於 設計與實作自己的 API 。但在真實專案中,我們經常需要 使用別人的 API —— 例如 Google Maps API、天氣資料 API、或是 GitHub API。
第三方 API 的好處是:

  • 快速取得資料(不用自己建立資料庫)
  • 專業維護(由第三方公司負責資料正確性與更新)
  • 加速開發(直接串接現有功能,而不是從零開始)
    今天,我們以 GitHub API 為例,介紹如何使用第三方 API。

GitHub API 簡介

GitHub 提供一個公開的 REST API,開發者可以透過它來:

  • 取得公開的 Repository 資訊
  • 讀取 Issue、Pull Request
  • 檢查使用者資料
  • 甚至自動化管理專案

基本 API 請求

最簡單的 GitHub API 請求範例:

GET https://api.github.com/users/octocat

這個請求會回傳 GitHub 上 octocat 使用者的資訊:

{
  "login": "octocat",
  "id": 583231,
  "name": "The Octocat",
  "company": "@github",
  "location": "San Francisco",
  "public_repos": 8,
  "followers": 10000,
  ...
}

使用 curl 測試 API

curl https://api.github.com/users/octocat

輸出內容會是 JSON 格式,包含使用者基本資料。


在 Node.js 中呼叫 GitHub API

我們可以使用 node-fetch 或內建的 fetch 來呼叫 API。

安裝(若 Node 版本不支援 fetch)

npm install node-fetch

程式碼範例

import fetch from "node-fetch";

async function getUser(username) {
  const response = await fetch(`https://api.github.com/users/${username}`);
  const data = await response.json();
  console.log(data);
}

getUser("octocat");

執行後,會在終端機看到 octocat 的 GitHub 資料。


使用 Token 提高 API 限制

GitHub 對未認證使用者有 Rate Limit 限制

  • 未認證:每小時最多 60 次請求
  • 使用 Token:每小時最多 5000 次請求

建立 Token

1.登入 GitHub
2.前往 Settings > Developer settings > Personal access tokens
3.建立一個新的 Token

帶 Token 呼叫 API

const token = "your_personal_access_token";

async function getUser(username) {
  const response = await fetch(`https://api.github.com/users/${username}`, {
    headers: {
      Authorization: `token ${token}`,
    },
  });
  const data = await response.json();
  console.log(data);
}

getUser("octocat");

GitHub API 常見應用場景

  • 專案統計:分析一個 Repository 的 Star / Fork / Issue 數量
  • 自動化工作流程:建立 Issue、觸發 CI/CD
  • 整合服務:在你的應用程式中顯示 GitHub 資料

小結

  • 第三方 API 讓我們能快速整合外部功能,避免重複造輪子。
  • GitHub API 是一個非常好的學習範例,支援公開資料與授權存取。
  • 使用 Token 認證 可以避免 Rate Limit 過快達到上限。

上一篇
Day 25:API Rate Limit 與流量控制
下一篇
Day 27:整合多個 API(Aggregator Pattern)
系列文
API 全攻略28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言