API Developer

L'API Developer fornisce l'accesso ai metadati di tutte le famiglie pubblicate 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 include 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 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 il seguente 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 della tua 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.

Acquisire e utilizzare una chiave API

Procurati un token

Oppure creane uno nella pagina Credenziali.

Dopo aver ottenuto una chiave API, l'applicazione può aggiungere il parametro di ricerca key=yourAPIKey a tutti gli URL di richiesta.

La chiave API è sicura per l'incorporamento negli URL, non è necessaria 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 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 per il sottoinsieme 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 di seguito) per i caratteri variabili.
  • lastModified: la data (formato "aaaa-MM-gg") in cui la famiglia di caratteri è stata modificata l'ultima volta.
  • file: 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 API Fonts. Ad esempio, supponendo che abbiamo un riferimento all'oggetto di famiglia per l' Pro anonimo:

[...]

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

L'elenco delle famiglie viene restituito in un ordine non predefinito per impostazione predefinita. È comunque 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: ordina l'elenco per data di aggiunta (dal carattere più recente aggiunto o aggiornato prima)
  • popolarità: ordina l'elenco per popolarità (dalla famiglia più popolare)
  • style: ordina l'elenco per numero di stili disponibili (famiglia con la maggior parte degli stili)
  • Di tendenza: ordina l'elenco per famiglie che registrano una crescita dell'utilizzo (la famiglia registra prima gli aumenti)

Applicazione dei filtri

Esegui una 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 i file dei caratteri compressi in formato woff2

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

Caratteri variabili

I caratteri variabili offrono intervalli di stili continui. Per impostazione predefinita, viene restituita una combinazione di file di caratteri statici per le variabili variabili create nell'istanza di posizioni standard. Se il criterio capaibility=VF è impostato, viene restituito il file dei caratteri della variabile anziché quelli statici con i metadati dell'intervallo degli assi disponibili. Esempio di esempio:

https://www.googleapis.com/webfonts/v1/webfonts?capaibility=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
      }
    ]
  },
  [...]
 ]
}

Specifica URL API

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

your_key: la tua chiave API sviluppatore.

family: nome di una famiglia di caratteri.

subset: nome di un sottoinsieme di caratteri.

capability: VF | WOFF2.

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