API Developer

L'API per sviluppatori consente di accedere ai metadati di tutte le famiglie servite da Google Fonts. Consente alle app di eseguire query su Google Fonts per 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) in 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 è destinato agli sviluppatori web e di applicazioni. L'utilizzo dell'API per sviluppatori 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 del 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

La tua applicazione deve identificarsi ogni volta che invia una richiesta all'API Google Fonts Developer, includendo una chiave API in ogni richiesta.

Acquisizione e utilizzo di una chiave API

Ottenere una chiave

oppure creane uno nella pagina Credenziali.

Una volta ottenuta 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 e non richiede alcuna codifica.

Dettagli

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

Un oggetto famiglia è composto dai seguenti campi:

  • kind: il tipo di oggetto, un oggetto webfont
  • famiglia: il nome della famiglia
  • subset: un elenco di script supportati dalla famiglia
  • menu: Un URL del 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 dell'asse, presente solo su richiesta (vedi sotto) per i caratteri variabili.
  • lastModified: la data (formato "aaaa-MM-gg") dell'ultima modifica della famiglia di caratteri.
  • file: i file della famiglia di caratteri (con tutti gli script supportati) per ciascuna delle varianti disponibili.
  • color_capabilities: i formati di colore, se presenti, supportati da questa famiglia
  • tag: i tag che si applicano all'intero spazio di progettazione di questa famiglia. Presente solo su richiesta (vedi di seguito).

Combinando le informazioni per ogni famiglia, è facile creare una richiesta dell'API Fonts. Ad esempio, supponendo di avere un riferimento all'oggetto famiglia 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 senza un 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
  • data: ordina l'elenco in base alla data di aggiunta (il carattere aggiunto o aggiornato più di recente viene visualizzato per primo)
  • popolarità: ordina l'elenco in base alla popolarità (prima la famiglia più popolare)
  • style: Sort the list by number of styles available (family with most styles first)
  • Tendenze: ordina l'elenco in base alle famiglie che registrano una crescita dell'utilizzo (prima la famiglia che registra la crescita maggiore)

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

Filtrare 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 istanziati in posizioni standard. Se capability=VF è impostato, 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

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

Tag

Se capability=FAMILY_TAGS è impostato, il campo dei tag verrà compilato con tutti i tag che riguardano l'intero spazio di progettazione della famiglia.

Esempio di campione:

{
 "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",
    "tags": [
      {
        "name": "/Expressive/Business",
        "weight": 58
      },
      {
        "tag": "/Sans/Humanist",
        "weight": 100,
      }
    ]
  },
  [...]
 ]
}

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.