API cho nhà phát triển

API Nhà phát triển cấp quyền truy cập vào siêu dữ liệu về tất cả gia đình được phân phát của Google Fonts. Cho phép các ứng dụng truy vấn Google Fonts cho các bộ phông chữ có sẵn. Chiến lược phát hành đĩa đơn API REST cung cấp dữ liệu ở định dạng JSON bao gồm các kiểu và tập lệnh (được gọi là nhóm nhỏ trong Google Fonts) trong mỗi nhóm. API có thể sắp xếp danh sách gia đình theo thứ tự bảng chữ cái, theo ngày thêm vào, theo số kiểu, theo xu hướng hoặc theo mức độ phổ biến.

Đối tượng

Tài liệu này dành cho nhà phát triển web và ứng dụng. Sử dụng API Nhà phát triển yêu cầu kiến thức về JavaScript.

Một ví dụ nhanh

Để truy xuất danh sách phông chữ động do dịch vụ Google Fonts cung cấp, hãy gửi yêu cầu sau:

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

Một mẫu của kết quả sẽ có dạng như sau:

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

Xác định ứng dụng của bạn cho Google

Ứng dụng của bạn cần phải tự nhận dạng mỗi khi gửi yêu cầu đến Google Fonts Developer API, bằng cách thêm khoá API với mỗi của bạn.

Nhận và sử dụng khoá API

Mua khoá

Hoặc tạo một mã trong trang Thông tin đăng nhập.

Sau khi bạn có khoá API, ứng dụng của bạn có thể thêm tham số truy vấn key=yourAPIKey vào tất cả URL yêu cầu.

Khoá API này an toàn khi nhúng trong URL; nó không cần bất kỳ phương thức mã hoá nào.

Chi tiết

Phản hồi JSON (tham khảo mẫu ở trên) bao gồm một mảng có tên là "items" Tệp này chứa các đối tượng có thông tin về từng bộ phông chữ.

Đối tượng nhóm gia đình bao gồm các trường sau:

  • loại: Loại đối tượng, đối tượng webfont
  • gia đình: Tên của gia đình
  • các tập hợp con: Danh sách các tập lệnh được nhóm hỗ trợ
  • menu: URL đến tập hợp con gia đình chỉ chứa tên của gia đình.
  • biến thể: Các kiểu khác nhau có sẵn cho nhóm gia đình
  • version: Phiên bản bộ phông chữ.
  • trục: Phạm vi trục, Chỉ hiển thị theo yêu cầu(xem bên dưới) đối với các phông chữ có thể thay đổi.
  • lastModified: Ngày (định dạng "yyyy-MM-dd") mà bộ phông chữ đã được sửa đổi lần cuối.
  • tệp: Các tệp bộ phông chữ (với tất cả các tập lệnh được hỗ trợ) cho mỗi tệp các biến thể có sẵn.

Bằng cách kết hợp thông tin cho từng gia đình, bạn có thể dễ dàng tạo Fonts API của bạn. Ví dụ: giả sử chúng ta tham chiếu đến đối tượng nhóm cho Chuyên gia ẩn danh:

[...]

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

[...]

Sắp xếp

Theo mặc định, danh sách các nhóm gia đình được trả về không theo thứ tự cụ thể nào. Đó là tuy nhiên, bạn có thể sắp xếp danh sách bằng cách sử dụng thông số sắp xếp:

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

Có thể sử dụng các giá trị sắp xếp sau:

  • alpha: Sắp xếp danh sách theo thứ tự bảng chữ cái
  • date: Sắp xếp danh sách theo ngày thêm (phông chữ được thêm gần đây nhất hoặc cập nhật trước)
  • mức độ phổ biến: Sắp xếp danh sách theo mức độ phổ biến (gia đình phổ biến nhất xếp trước)
  • style: Sắp xếp danh sách theo số kiểu có sẵn (họ có hầu hết các kiểu) )
  • xu hướng: Sắp xếp danh sách theo gia đình thấy mức sử dụng gia tăng (gia đình xem tăng trưởng cao nhất xếp trước)

Lọc

Truy vấn một nhóm gia đình cụ thể

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

Tất cả gia đình hỗ trợ tập hợp con của Hy Lạp

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

Tối ưu hoá

Để truy xuất các tệp phông chữ được nén ở định dạng woff2

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

Phông chữ biến đổi

Phông chữ biến đổi cung cấp nhiều kiểu liên tục. Theo mặc định, kết hợp Hệ thống sẽ trả về tệp phông chữ tĩnh cho các phông chữ biến được tạo thực thể theo tiêu chuẩn vị trí. Nếu bạn đặt capability=VF, tệp phông chữ biến sẽ được trả về thay vì tệp tĩnh cùng với siêu dữ liệu về các trục có sẵn. ví dụ mẫu:

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

Câu trả lời mẫu:

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

Thông số kỹ thuật URL API

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

your_key: Khoá API dành cho nhà phát triển của bạn.

family: Tên của một bộ phông chữ.

subset: Tên của một tập hợp con phông chữ.

capability: VF | WOFF2.

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