API Developer

Developer API memberikan akses ke metadata untuk semua jenis grup yang ditayangkan oleh Google Fonts. Hal ini memungkinkan aplikasi untuk membuat kueri {i>Google Fonts <i}untuk kelompok font yang tersedia. REST API menyediakan data dalam format JSON yang menyertakan gaya dan skrip (disebut subset di Google Fonts) di setiap jenis. API ini dapat mengurutkan daftar keluarga menurut abjad, tanggal ditambahkan, jumlah gaya, tren, atau populer.

Audiens

Dokumen ini ditujukan untuk developer web dan aplikasi. Penggunaan Developer API memerlukan pengetahuan tentang JavaScript.

Contoh singkat

Untuk mengambil daftar font dinamis yang ditawarkan oleh layanan Google Fonts, kirim permintaan berikut:

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

Contoh hasilnya akan terlihat seperti ini:

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

Mengidentifikasi permohonan Anda ke Google

Aplikasi Anda harus mengidentifikasi dirinya sendiri setiap kali mengirim permintaan ke Google Fonts Developer API, dengan menyertakan kunci API bersama setiap permintaan.

Mendapatkan dan menggunakan kunci API

Dapatkan Kunci

Atau, buat di halaman Credentials.

Setelah Anda memiliki kunci API, aplikasi Anda dapat menambahkan parameter kueri key=yourAPIKey ke semua URL permintaan.

Kunci API aman untuk disematkan dalam URL; tidak memerlukan encoding apa pun.

Detail

Respons JSON (lihat contoh di atas) terdiri dari array bernama "items" yang berisi objek dengan informasi tentang setiap jenis font.

Objek keluarga terdiri dari kolom berikut:

  • jenis: Jenis objek, objek webfont
  • keluarga: Nama keluarga
  • subset: Daftar skrip yang didukung oleh kelompok
  • menu: Url ke subkumpulan keluarga yang hanya mencakup nama keluarga.
  • varian: Berbagai gaya yang tersedia untuk keluarga
  • version: Versi jenis font.
  • sumbu: Rentang sumbu, Hanya ada setelah diminta(lihat di bawah) untuk font variabel.
  • lastModified: Tanggal (format "yyyy-MM-dd") jenis font diubah terakhir kali.
  • file: File jenis font (dengan semua skrip yang didukung) untuk setiap varian yang tersedia.

Dengan menggabungkan informasi untuk setiap keluarga, akan mudah membuat permintaan Fonts API. Sebagai contoh, dengan asumsi bahwa kita memiliki referensi ke objek keluarga untuk 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('');

[...]

Pengurutan

Daftar keluarga ditampilkan tanpa urutan tertentu secara default. Namun, Anda dapat mengurutkan daftar menggunakan parameter pengurutan:

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

Nilai pengurutan yang mungkin adalah:

  • alpha: Mengurutkan daftar menurut abjad
  • date: Mengurutkan daftar berdasarkan tanggal yang ditambahkan (font terbaru ditambahkan atau diperbarui terlebih dahulu)
  • popularitas: Urutkan daftar berdasarkan popularitas (keluarga yang paling populer terlebih dahulu)
  • style: Mengurutkan daftar berdasarkan jumlah gaya yang tersedia (keluarga dengan sebagian besar gaya terlebih dahulu)
  • sedang trending: Urutkan daftar berdasarkan keluarga yang melihat pertumbuhan penggunaan (keluarga yang melihat pertumbuhan paling banyak terlebih dahulu)

Pemfilteran

Membuat kueri keluarga tertentu

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

Semua keluarga yang mendukung subkumpulan bahasa Yunani

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

Pengoptimalan

Untuk mengambil file font yang dikompresi dalam format woff2

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

Font Variabel

Font variabel menawarkan berbagai gaya yang berkelanjutan. Secara default, kombinasi file font statis ditampilkan untuk font variabel yang dibuat instance-nya pada posisi standar. Jika capability=VF ditetapkan, file font variabel akan ditampilkan, bukan font statis, beserta metadata rentang sumbu yang tersedia. contoh contoh:

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

Contoh respons:

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

Spesifikasi URL API

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

your_key: Kunci API developer Anda.

family: Nama jenis font.

subset: Nama subset font.

capability: VF | WOFF2.

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