API do desenvolvedor

A API Developer dá acesso aos metadados para todas as famílias atendidas do Google Fonts. Ele permite que os apps consultem Fontes do Google para as famílias de fontes disponíveis. A A API REST fornece dados no formato JSON, que inclui os estilos e scripts (chamados de subconjuntos no Google Fonts) em cada família. A API classifica a lista de famílias em ordem alfabética, por data de inclusão, por número de estilos, por tendência ou por popularidade.

Público-alvo

Este documento é destinado a desenvolvedores da Web e de aplicativos. Usar o A API Developer requer conhecimento de JavaScript.

Um exemplo rápido

Para recuperar a lista dinâmica de fontes oferecidas pelo serviço Google Fonts, envie a seguinte solicitação:

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

Uma amostra do resultado ficaria assim:

{
 "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"
  },
  [...]
 ]
}

Como identificar seu aplicativo para o Google

Seu aplicativo precisa se identificar toda vez que envia uma solicitação para a API Google Fonts Developer, incluindo uma chave de API em cada solicitação.

Como receber e usar uma chave de API

Acessar uma chave

Ou crie uma na página Credenciais.

Depois que você tiver uma chave de API, seu aplicativo poderá anexar o parâmetro de consulta key=yourAPIKey a todos os URLs de solicitação.

É seguro incorporar a chave de API a URLs. Não é necessário codificá-la.

Detalhes

A resposta JSON (consulte o exemplo acima) é composta por uma matriz chamada "items". que contém objetos com informações sobre cada família de fontes.

Um objeto de família é composto pelos seguintes campos:

  • kind: o tipo de objeto, um objeto webfont
  • família: o nome da família
  • subconjuntos: uma lista de scripts suportados pela família
  • menu: um URL para o subconjunto de famílias que abrange apenas o nome da família.
  • variantes: os diferentes estilos disponíveis para a família
  • version: a versão da família de fontes.
  • eixos: intervalo do eixo, presente apenas mediante solicitação(veja abaixo) para fontes variáveis.
  • lastModified: a data (no formato "aaaa-MM-dd") em que a família de fontes foi modificada pela última vez.
  • files: os arquivos da família de fontes (com todos os scripts suportados) de cada um dos variantes disponíveis.

Ao combinar as informações de cada família, é fácil criar uma API Fonts. solicitação. Por exemplo, presumindo que temos uma referência ao objeto família para Profissional anônimo:

[...]

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('');

[...]

Classificação

Por padrão, a lista de famílias não é retornada em uma ordem específica. É possível, no entanto, para classificar a lista usando o parâmetro de classificação:

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

Os valores de classificação possíveis são:

  • alpha: classificar a lista em ordem alfabética
  • date: classifica a lista pela data de inclusão (fonte mais recente adicionada ou atualizada primeiro)
  • Popularidade: classificar a lista por popularidade (mais populares primeiro)
  • style: classificar a lista por número de estilos disponíveis (família com mais estilos primeiro)
  • em alta: classifique a lista por famílias com aumento no uso (família vendo o mais crescimento primeiro)

Filtragem

Consultar uma família específica

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

Todas as famílias compatíveis com o subconjunto grego

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

Otimização

Para recuperar arquivos de fonte compactados no formato woff2

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

Fontes variáveis

As fontes variáveis oferecem intervalos contínuos de estilos. Por padrão, uma combinação de arquivos de fontes estáticas são retornados para fontes variáveis instanciadas no padrão de posição. Se capability=VF estiver definido, o arquivo de fonte variável vai ser retornado em vez de estático junto com os metadados do intervalo de eixos disponíveis. exemplo:

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

Exemplo de resposta:

{
 "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
      }
    ]
  },
  [...]
 ]
}

Especificação do URL da API

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

your_key: sua chave da API do desenvolvedor.

family: nome de uma família de fontes.

subset: nome de um subconjunto de fontes.

capability: VF | WOFF2

sort: alpha | date | popularity | style | trending.