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
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
.