واجهة برمجة التطبيقات لمطوّري البرامج

تتيح واجهة برمجة التطبيقات Developer API الوصول إلى البيانات الوصفية لجميع العائلات التي تعرض من Google Fonts. يسمح للتطبيقات بطلب البحث Google Fonts لعائلات الخطوط المتاحة. تشير رسالة الأشكال البيانية توفّر واجهة برمجة تطبيقات REST البيانات بتنسيق JSON الذي يتضمّن الأنماط والنصوص البرمجية. (تسمى مجموعات فرعية في Google Fonts) في كل عائلة. ويمكن لواجهة برمجة التطبيقات فرز قائمة للعائلات أبجديًا أو حسب تاريخ الإضافة أو حسب عدد الأنماط أو حسب الاتجاه أو حسب الشعبية.

الجمهور

هذا المستند مخصّص لمطوّري الويب والتطبيقات. استخدام تتطلب واجهة برمجة التطبيقات Developer API معرفة بلغة JavaScript.

مثال سريع

لاسترداد القائمة الديناميكية للخطوط التي تقدمها خدمة Google Fonts، أرسل الطلب التالي:

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

ستبدو عينة من النتيجة على النحو التالي:

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

تحديد تطبيقك لـ Google

يحتاج تطبيقك إلى تعريف نفسه في كل مرة يرسل فيها طلبًا إلى Google Fonts Developer API، من خلال تضمين مفتاح واجهة برمجة تطبيقات مع كل طلبك.

الحصول على مفتاح واجهة برمجة التطبيقات واستخدامه

الحصول على مفتاح

أو أنشئ حسابًا في صفحة بيانات الاعتماد.

بعد حصولك على مفتاح واجهة برمجة التطبيقات، يمكن لتطبيقك إلحاق مَعلمة طلب البحث. key=yourAPIKey إلى جميع عناوين URL للطلبات.

يمكن تضمين مفتاح واجهة برمجة التطبيقات بأمان في عناوين URL. ولا يحتاج إلى أي ترميز.

التفاصيل

يتألف استجابة JSON (راجِع النموذج أعلاه) من مصفوفة اسمها "items". الذي يحتوي على كائنات تحتوي على معلومات حول كل مجموعة خطوط.

يتألف عنصر العائلة من الحقول التالية:

  • kind: نوع الكائن، وكائن webfont
  • العائلة: اسم العائلة
  • مجموعات فرعية: قائمة بالنصوص البرمجية التي تدعمها العائلة
  • القائمة: عنوان URL لمجموعة فرعية من العائلة يغطي اسم العائلة فقط.
  • خيارات المنتج: الأنماط المختلفة المتاحة للعائلة
  • الإصدار: إصدار مجموعة الخطوط.
  • المحاور: نطاق المحور، ولا يتم عرضه إلا عند الطلب(انظر أدناه) للخطوط المتغيرة.
  • تاريخ آخر تعديل: التاريخ (التنسيق "yyyy-MM-dd") الذي تم تعديل مجموعة الخطوط من أجله في المرة الأخيرة.
  • ملفات: ملفات مجموعة الخطوط (مع جميع النصوص البرمجية المتوافقة) لكل ملف من والمتغيرات المتوفرة.

ومن خلال الجمع بين المعلومات لكل عائلة، يكون من السهل إنشاء Fonts API. طلبك. فعلى سبيل المثال، بافتراض أن لدينا إشارة إلى كائن العائلة خبير مجهول:

[...]

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

[...]

ترتيب

يتم تلقائيًا عرض قائمة العائلات بدون ترتيب معيّن. من المهم فرز القائمة باستخدام معلمة sort:

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

قيم الترتيب المحتملة هي:

  • ألفا: فرز القائمة أبجديًا
  • التاريخ: فرز القائمة حسب تاريخ الإضافة (أحدث خط تمت إضافته أو تعديله أولاً)
  • الشهرة: ترتيب القائمة حسب الشهرة (العائلة الأكثر شعبية أولاً)
  • النمط: فرز القائمة حسب عدد الأنماط المتاحة (العائلة التي تضم معظم الأنماط أولاً)
  • المؤشرات: رتِّب القائمة حسب العائلات التي تشهد نموًا في الاستخدام (ترى العائلة الأكثر نموًا أولاً)

الفلترة

الاستعلام عن عائلة محدّدة

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

كل العائلات التي تدعم مجموعة فرعية يونانية

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

التحسين

لاسترداد ملفات الخطوط المضغوطة بتنسيق woff2

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

الخطوط المتغيّرة

توفّر الخطوط المتغيّرة نطاقات مستمرة من الأنماط. وبشكل افتراضي، يمكن استخدام مزيج من يتم إرجاع ملفات الخطوط الثابتة للخطوط المتغيرة التي تم إنشاء مثيلها تلقائيًا المناصب. في حال ضبط capability=VF، يتم عرض ملف الخط المتغير بدلاً من الملف الثابت. إلى جانب بيانات التعريف المتوفرة في نطاق المحاور. مثال للعينة:

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

نموذج الرد:

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

مواصفات عنوان URL لواجهة برمجة التطبيقات

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

your_key: مفتاح واجهة برمجة تطبيقات المطوّر

family: اسم مجموعة خطوط

subset: اسم مجموعة فرعية من الخطوط

capability: VF | WOFF2

sort: alpha | date | popularity | style | trending