API Developer

L'API Developer dà accesso ai metadati per tutte le famiglie servite da Google Fonts. Consente alle app di interrogare Google Fonts per le famiglie di caratteri disponibili. L'API REST fornisce dati in formato JSON che include gli stili e gli script (chiamati sottoinsiemi di Google Fonts) di ogni famiglia. L'API può ordinare l'elenco delle famiglie in ordine alfabetico, per data di aggiunta, per numero di stili, per tendenza o per popolarità.

Pubblico

Questo documento è rivolto agli sviluppatori di applicazioni e web. L'utilizzo dell'API Developer richiede la conoscenza di JavaScript.

Un rapido esempio

Per recuperare l'elenco dinamico dei caratteri offerti dal servizio Google Fonts, invia la seguente richiesta:

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

Un esempio del risultato avrebbe questo aspetto:

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

Identificazione dell'applicazione su Google

L'applicazione deve identificarsi ogni volta che invia una richiesta all'API Google Fonts Developer, includendo una chiave API con ogni richiesta.

Acquisizione e utilizzo di una chiave API

Ottieni una chiave

In alternativa, creane una nella pagina Credenziali.

Dopo che hai ottenuto una chiave API, la tua applicazione può aggiungere il parametro di query key=yourAPIKey a tutti gli URL delle richieste.

La chiave API è sicura per l'incorporamento negli URL, non richiede alcuna codifica.

Dettagli

La risposta JSON (vedi l'esempio sopra) è composta da un array chiamato "items" che contiene oggetti con informazioni su ogni famiglia di caratteri.

Un oggetto della famiglia è composto dai seguenti campi:

  • kind: il tipo di oggetto, un oggetto webfont
  • family: il nome della famiglia
  • sottoinsiemi: un elenco di script supportati dalla famiglia
  • menu: un URL al sottoinsieme della famiglia che copre solo il nome della famiglia.
  • varianti: i diversi stili disponibili per la famiglia
  • version: la versione della famiglia di caratteri.
  • assi: intervallo asse, presenta solo su richiesta(vedi sotto) per caratteri variabili.
  • lastModified: la data (formato "aaaa-MM-gg") in cui la famiglia di caratteri è stata modificata per l'ultima volta.
  • file: i file della famiglia di caratteri (con tutti gli script supportati) per ogni variante disponibile.

Combinando le informazioni per ogni famiglia, è facile creare una richiesta di API Fonts. Ad esempio, supponendo di avere un riferimento all'oggetto famiglia per Nest 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('');

[...]

Ordinamento

Per impostazione predefinita, l'elenco delle famiglie viene restituito in ordine decrescente. Tuttavia, è possibile ordinare l'elenco utilizzando il parametro di ordinamento:

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

I possibili valori di ordinamento sono:

  • alpha: ordina l'elenco in ordine alfabetico
  • date: ordina l'elenco per data di aggiunta (fonte più recente aggiunto o aggiornato per primo)
  • popolarità: ordina l'elenco per popolarità (prima le famiglie più popolari)
  • stile: ordina l'elenco per il numero di stili disponibili (famiglia con la maggior parte degli stili per primi)
  • Tendenze: ordina l'elenco in base alle famiglie che registrano una crescita nell'utilizzo (la famiglia che registra la crescita maggiore per prima)

Applicazione dei filtri

Query su una famiglia specifica

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

Tutte le famiglie che supportano il sottoinsieme greco

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

Ottimizzazione

Per recuperare file di caratteri compressi in formato woff2

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

Caratteri variabili

I caratteri variabili offrono una serie di stili continui. Per impostazione predefinita, viene restituita una combinazione di file di caratteri statici per i caratteri variabili creati in posizioni standard. Se il criterio capability=VF è impostato, viene restituito il file del carattere variabile invece di quelli statici insieme ai metadati dell'intervallo di assi disponibili. Esempio di esempio:

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

Esempio di risposta:

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

Specifiche URL API

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

your_key: la chiave API dello sviluppatore.

family: il nome di una famiglia di caratteri.

subset: nome di un sottoinsieme di caratteri.

capability: VF | WOFF2.

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