开发者 API 可提供对由 Google Fonts 提供的所有系列的元数据的访问权限。它允许应用向 Google Fonts 查询可用的字体系列。REST API 以 JSON 格式提供数据,其中包括每个系列中的样式和脚本(在 Google Fonts 中称为子集)。该 API 可以按字母顺序、添加日期、样式数量、趋势或热门程度按字母顺序排序系列列表。
观众
本文档适用于 Web 应用和应用开发者。使用 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”的数组组成,它包含有关每个字体系列的信息的对象。
家庭对象由以下字段组成:
- 种类:对象的种类,网页字体对象
- family:家人群组的名称
- 计划子集:系列支持的脚本列表
- menu:指向仅涵盖系列名称的系列子集的网址。
- 不同款式:适用于系列的不同样式
- version:字体系列版本。
- 轴:坐标范围,仅在请求时显示(见下文),适用于可变字体。
- lastModified:上次修改字体系列的日期(格式为“yyyy-MM-dd”)。
- files:每个可用变体的字体系列文件(包含所有受支持的脚本)。
通过组合每个系列的信息,可以轻松创建 Fonts API 请求。例如,假设我们引用匿名 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(''); [...]
排序
默认情况下,系列列表不会按特定顺序返回。但是,可以使用 sort 参数对列表进行排序:
https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity
可能的排序值包括:
- alpha:按字母顺序对列表进行排序
- date:按添加日期对列表进行排序(最近添加或更新的字体排在最前面)
- 热门程度:按热门程度对列表进行排序(最热门的家庭优先)
- 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
变量字体
可变字体可提供连续的样式范围。默认情况下,对于在标准位置实例化的可变字体,系统会返回静态字体文件的组合。如果您设置了 capaibility=VF
,系统会返回可变字体文件(而非静态字体文件)以及可用的轴范围元数据。示例示例:
https://www.googleapis.com/webfonts/v1/webfonts?capaibility=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
。