开发者 API

您可以通过 Developer 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 对象由以下字段组成:

  • kind:对象的种类、网络字体对象
  • family:家人群组的名称
  • 子集:该系列支持的脚本列表
  • 菜单:仅涵盖系列名称的族子集网址。
  • 款式/规格:适用于系列的不同样式
  • 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('');

[...]

排序

默认情况下,系列列表以无特定顺序返回。但是,可以使用排序参数对列表进行排序:

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