API Developer

Developer API memberikan akses ke metadata untuk semua keluarga yang ditayangkan oleh Google Fonts. Hal ini memungkinkan aplikasi untuk melakukan kueri Google Fonts untuk jenis font yang tersedia. Tujuan REST API menyediakan data dalam format JSON yang mencakup gaya dan skrip (disebut subset di Google Fonts) di setiap kelompok. API dapat mengurutkan daftar keluarga menurut abjad, berdasarkan tanggal ditambahkan, jumlah gaya, tren, atau popularitas.

Audiens

Dokumen ini ditujukan untuk developer web dan aplikasi. Menggunakan 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 hasil 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 aplikasi Anda ke Google

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

Mendapatkan dan menggunakan kunci API

Dapatkan Kunci

Atau buat satu 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; dan 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:

  • type: Jenis objek, objek webfont
  • keluarga: Nama keluarga
  • subset: Daftar skrip yang didukung oleh keluarga
  • 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 presentasi berdasarkan permintaan(lihat di bawah) untuk font variabel.
  • lastModified: Tanggal (format "yyyy-MM-dd") jenis font yang telah diubah terakhir kalinya.
  • file: File jenis font (dengan semua skrip yang didukung) untuk setiap yang tersedia.

Dengan menggabungkan informasi untuk setiap keluarga, akan mudah untuk membuat Fonts API permintaan. Misalnya dengan asumsi kita memiliki referensi ke objek keluarga untuk Pro Anonim:

[...]

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 tidak ditampilkan dalam urutan tertentu secara default. Penting mungkin untuk 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 penambahan (font terbaru yang ditambahkan atau diperbarui terlebih dahulu)
  • popularitas: Urutkan daftar berdasarkan popularitas (keluarga paling populer terlebih dahulu)
  • style: Mengurutkan daftar berdasarkan jumlah corak yang tersedia (keluarga dengan sebagian besar gaya pertama)
  • trending: Urutkan daftar menurut keluarga yang mengalami pertumbuhan penggunaan (keluarga melihat pertumbuhan tertinggi terlebih dahulu)

Pemfilteran

Membuat kueri keluarga tertentu

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

Semua keluarga yang mendukung subkumpulan 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 rentang gaya yang berkelanjutan. Secara {i>default<i}, kombinasi file font statis ditampilkan untuk font variabel yang dibuat instance-nya pada posisi saat ini. Jika capability=VF ditetapkan, file font variabel akan ditampilkan, bukan statis angka satu 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.