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