API Developer

L'API per gli sviluppatori consente di accedere ai metadati di tutte le famiglie pubblicate da Google Fonts. Consente alle app di eseguire query su Google Fonts per trovare le famiglie di caratteri disponibili. L'API REST fornisce dati in formato JSON che includono gli stili e gli script (chiamati sottoinsiemi in 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 web e di applicazioni. L'utilizzo dell'API Developer richiede la conoscenza di JavaScript.

Un esempio rapido

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 di risultato potrebbe essere il seguente:

{
 "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 per Google

L'applicazione deve identificarsi ogni volta che invia una richiesta all'API per sviluppatori Google Fonts, includendo una chiave API in ogni richiesta.

Acquisizione e utilizzo di una chiave API

Ottieni una chiave

In alternativa, creane uno nella pagina Credenziali.

Una volta ottenuta una chiave API, la tua applicazione può aggiungere il parametro di querykey=yourAPIKey a tutti gli URL di richiesta.

La chiave API è sicura per l'inserimento negli URL e non richiede alcuna codifica.

Dettagli

La risposta JSON (fai riferimento all'esempio sopra) è composta da un array denominato "items" che contiene oggetti con informazioni su ogni famiglia di caratteri.

Un oggetto family è composto dai seguenti campi:

  • kind: il tipo di oggetto, un oggetto webfont
  • family: il nome della famiglia
  • subsets: un elenco di script supportati dalla famiglia
  • menu: un URL al sottoinsieme di famiglie che copre solo il nome della famiglia.
  • variants: i diversi stili disponibili per la famiglia
  • version: la versione della famiglia di caratteri.
  • axes: intervallo dell'asse, presente solo su richiesta(vedi di seguito) per i caratteri variabili.
  • lastModified: la data (formato "aaaa-MM-gg") dell'ultima modifica della famiglia di caratteri.
  • files: i file della famiglia di caratteri (con tutti gli script supportati) per ciascuna delle varianti disponibili.

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

[...]

Ordinamento

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

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

I valori di ordinamento possibili sono:

  • alpha: ordina l'elenco in ordine alfabetico
  • date: per ordinare l'elenco per data di aggiunta (il carattere più recente aggiunto o aggiornato per primo)
  • popularity: ordina l'elenco in base alla popolarità (prima la famiglia più popolare)
  • style: ordina l'elenco in base al numero di stili disponibili (prima la famiglia con più stili).
  • in tendenza: ordina l'elenco in base alle famiglie che registrano una crescita dell'utilizzo (prima la famiglia con la crescita più elevata).

Filtri

Eseguire 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

Filtra per categoria di carattere

https://www.googleapis.com/webfonts/v1/webfonts?category=category_name

Ottimizzazione

Per recuperare i file dei caratteri compressi in formato woff2

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

Caratteri variabili

I caratteri variabili offrono intervalli continui di stili. Per impostazione predefinita, viene restituita una combinazione di file di caratteri statici per i caratteri variabili istantizzati nelle posizioni standard. Se è impostato capability=VF, viene restituito il file del carattere variabile anziché quelli statici, insieme ai metadati dell'intervallo degli assi disponibili. Esempio:

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

Risposta di esempio:

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

Specifica dell'URL dell'API

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

your_key: la tua chiave API per sviluppatori.

family: il nome di una famiglia di caratteri.

subset: il nome di un sottoinsieme di caratteri.

category: serif | sans-serif | monospace | display | handwriting

capability: VF | WOFF2.

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