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
:字型子集的名稱。
capability
:VF
| WOFF2
。
sort
:alpha
| date
| popularity
| style
| trending
。