API Developer

L'API Developer donne accès aux métadonnées de toutes les familles diffusées. par Google Fonts. Il permet aux applications d'interroger Google Fonts pour les familles de polices disponibles. La L'API REST fournit des données au format JSON, y compris les styles et les scripts. (appelés sous-ensembles dans Google Fonts) dans chaque famille. L'API peut trier la liste familles par ordre alphabétique, par date d'ajout, par nombre de styles, par tendance ou par popularité.

Audience

Ce document est destiné aux développeurs Web et d'applications. Avec les L'API de développement nécessite une connaissance de JavaScript.

Un bref exemple

Pour récupérer la liste dynamique des polices proposée par le service Google Fonts, envoyez la requête suivante:

https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY

Voici un exemple de résultat:

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

Identifier votre application auprès de Google

Votre application doit s'identifier chaque fois qu'elle envoie une requête à l'API Google Fonts Developer, en incluant une clé API avec chaque requête.

Obtenir et utiliser une clé API

Obtenir une clé

Vous pouvez également en créer un sur la page Identifiants.

Une fois la clé API obtenue, votre application peut ajouter le paramètre de requête key=yourAPIKey à toutes les URL de requête.

La clé API peut s'intégrer aux URL en toute sécurité et ne nécessite pas d'encodage.

Détails

La réponse JSON (voir l'exemple ci-dessus) est composée d'un tableau nommé "items". qui contient des objets avec des informations sur chaque famille de polices.

Un objet Famille est composé des champs suivants:

  • "kind" : type d'objet, objet de police Web
  • family: nom de la famille
  • sous-ensembles: liste des scripts pris en charge par la famille
  • menu: URL du sous-ensemble de la famille recouvrant uniquement le nom de la famille.
  • Variantes: les différents styles disponibles pour la famille
  • version: version de la famille de polices.
  • axes: plage d'axes. Disponible uniquement sur demande(voir ci-dessous) pour les polices variables.
  • lastModified: date (au format "aaaa-MM-jj") pour laquelle la famille de polices a été modifiée. la dernière fois.
  • files (fichiers) : les fichiers de famille de polices (avec tous les scripts pris en charge) pour chacun des les variantes disponibles.

En combinant les informations de chaque famille, il est facile de créer une API Fonts requête. Par exemple, en supposant que nous avons une référence à l'objet Famille pour Utilisateur anonyme:

[...]

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('');

[...]

Tri

Par défaut, la liste des familles est renvoyée sans ordre particulier. Il est Toutefois, vous pouvez trier la liste à l'aide du paramètre de tri:

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

Les valeurs de tri possibles sont les suivantes:

  • alpha: trie la liste par ordre alphabétique.
  • date: trie la liste par date d'ajout (la police la plus récente a été ajoutée ou mise à jour en premier).
  • popularité: trie la liste par popularité (la famille la plus populaire en premier)
  • style: trie la liste par nombre de styles disponibles (famille ayant le plus de styles en premier)
  • tendances: triez la liste en fonction des familles dont l'utilisation augmente la croissance la plus élevée en premier)

Filtrage

Interroger une famille spécifique

https://www.googleapis.com/webfonts/v1/webfonts?family=family_name

Toutes les familles prenant en charge le sous-ensemble grec

https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name

Optimisation

Pour récupérer les fichiers de police compressés au format woff2

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

Polices variables

Les polices variables offrent une plage continue de styles. Par défaut, une combinaison Les fichiers de polices statiques sont renvoyés pour les polices variables instanciées en mode standard en fonction de leur position géographique. Si capability=VF est défini, le fichier de police variable est renvoyé à la place du fichier statique. ainsi que les métadonnées de la plage des axes disponibles. exemple:

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

Exemple de réponse :

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

Spécification de l'URL de l'API

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

your_key: votre clé API de développeur

family: nom d'une famille de polices.

subset: nom d'un sous-ensemble de polices.

capability: VF | WOFF2

sort: alpha | date | popularity | style | trending