開發人員 API

Developer API 可以存取 Google Fonts 提供的所有系列中繼資料。可讓應用程式查詢 Google Fonts 的可用字型系列。REST API 會以 JSON 格式提供資料,其中包含每個系列中的樣式和指令碼 (在 Google Fonts 中稱為子集)。這個 API 可以按照字母順序、新增日期、樣式數量、趨勢或熱門程度排序系列叢書。

觀眾

本文件適用於網頁與應用程式開發人員。如要使用 Developer API,您必須熟悉 JavaScript。

簡短範例

如要擷取 Google Fonts 服務提供的動態字型清單,請傳送下列要求:

https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY

結果範例如下所示:

{
 "kind": "webfonts#webfontList",
 "items": [
  [...]
  {
    "family": "Anonymous Pro",
    "variants": [
      "regular",
      "italic",
      "700",
      "700italic"
    ],
    "subsets": [
      "cyrillic",
      "greek",
      "latin",
      "latin-ext"
    ],
    "version": "v21",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pLlw89CH98Ko.ttf",
      "italic": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2fp2a15UIB7Un-bOeISG3pHl428AP44Kqr2Q.ttf",
      "700": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2cp2a15UIB7Un-bOeISG3pFuAT0CnW7KOywKo.ttf",
      "700italic": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2ap2a15UIB7Un-bOeISG3pHl4OTCzc6IG30KqB9Q.ttf"
    },
    "category": "monospace",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pHl028A.ttf"
  },
  {
    "family": "Antic",
    "variants": [
      "regular"
    ],
    "subsets": [
      "latin"
    ],
    "version": "v19",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/antic/v19/TuGfUVB8XY5DRaZLodgzydtk.ttf"
    },
    "category": "sans-serif",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/antic/v19/TuGfUVB8XY5DRZZKq9w.ttf"
  },
  [...]
 ]
}

向 Google 指定您的應用程式

應用程式每次傳送要求給 Google Fonts Developer API 時,都需要識別本身,方法是在每次要求中加入 API 金鑰

取得並使用 API 金鑰

取得金鑰

或是在「憑證」頁面中建立。

取得 API 金鑰後,應用程式可將查詢參數 key=yourAPIKey 附加到所有要求網址。

API 金鑰可以安全地嵌入網址中,不需任何編碼。

詳細說明

JSON 回應 (請參閱上方範例) 由名為「items」的陣列組成,其中包含每個字型系列的相關資訊。

系列物件由下列欄位組成:

  • kind:物件種類,Webfont 物件
  • 家族名稱:系列名稱
  • subs:家庭支援的指令碼清單
  • 選單:僅涵蓋家族名稱的家族網址。
  • 子類:可用於家庭的不同款式
  • version:字型系列版本。
  • 軸:軸範圍,只在要求時提供(請見下文)。
  • lastModified:上次修改字型系列的日期 (格式「yyyy-MM-dd」)。
  • files:每個可用變化版本的字型系列檔案 (以及所有支援的指令碼)。

透過整合每個系列的資訊,即可輕鬆建立 Fonts API 要求。例如,假設我們參照了 Anonymous Pro 的系列物件:

[...]

var apiUrl = [];
apiUrl.push('https://fonts.googleapis.com/css?family=');
apiUrl.push(anonymousPro.family.replace(/ /g, '+'));
if (contains('italic', anonymousPro.variants)) {
  apiUrl.push(':');
  apiUrl.push('italic');
}
if (contains('greek', anonymousPro.subsets)) {
  apiUrl.push('&subset=');
  apiUrl.push('greek');
}

// url: 'https://fonts.googleapis.com/css?family=Anonymous+Pro:italic&subset=greek'
var url = apiUrl.join('');

[...]

排序

根據預設,系列清單不會以特定順序傳回。不過,您可以使用排序參數來排序清單:

https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity

可能的排序值如下:

  • alpha:依字母順序排序清單
  • 日期:依新增日期排序清單 (最近新增或更新的字型)
  • 人氣:依熱門程度排序清單 (按熱門程度由高到低排序)
  • style:按照可用的樣式數量排序清單 (系列最先套用的樣式)
  • 趨勢:按照用量成長的家庭來排序清單 (家庭成長率最高的家族)

篩選

查詢特定係列

https://www.googleapis.com/webfonts/v1/webfonts?family=family_name

所有支援希臘子集的家庭

https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name

最佳化

用於擷取以 woff2 格式壓縮的字型檔案

https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2

可變字型

可變字型提供連續的樣式範圍。根據預設,系統會針對在標準位置執行個體化的變數字型,傳回一組靜態字型檔案。如果設定了 capability=VF,則會傳回變數字型檔案,而非靜態檔案,以及可用的軸範圍中繼資料。範例:

https://www.googleapis.com/webfonts/v1/webfonts?capability=VF

回應範例:

{
 "kind": "webfonts#webfontList",
 "items": [
  [...]
  {
    "family": "Noto Sans Display",
    "variants": [
      "regular",
      "italic"
    ],
    "subsets": [
      "cyrillic",
      "cyrillic-ext",
      "greek",
      "greek-ext",
      "latin",
      "latin-ext",
      "vietnamese"
    ],
    "version": "v20",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLplK4fy6r6tOBEJg0IAKzqdFZVZxokvfn_BDLxR.ttf",
      "italic": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLpjK4fy6r6tOBEJg0IAKzqdFZVZxrktdHvjCaxRgew.ttf"
    },
    "category": "sans-serif",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLpbK4fy6r6tOBEJg0IAKzqdFZVZxpMkXJMhnB9XjO1o90LuV-PT4Doq_AKp_3cKZTCa3g.ttf",
    "axes": [
      {
        "tag": "wdth",
        "start": 62.5,
        "end": 100
      },
      {
        "tag": "wght",
        "start": 100,
        "end": 900
      }
    ]
  },
  [...]
 ]
}

API 網址規格

webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]

your_key:您的開發人員 API 金鑰。

family:字型系列的名稱。

subset:字型子集的名稱。

capabilityVF | WOFF2

sortalpha | date | popularity | style | trending