حزمة أدوات تطوير البرمجيات لـ TypeScript

تحكم باستضافتك من خلال TypeScript

تُعد @zinn-digital/sdk عميلاً محدد الأنواع بالكامل (fully typed) لواجهة برمجة تطبيقات ⁦Zinn Digital® API⁩. يتم إنشاء كل مسار ومعلمة واستجابة من نفس مواصفات OpenAPI التي بُنيت منها واجهة برمجة التطبيقات، لذا يتعرف محرر التعليمات البرمجية لديكم على كامل واجهة برمجة التطبيقات ويصبح أي خطأ مطبعي خطأ في الترجمة البرمجية (compile error).

جميع مستندات المطورين →

تثبيت

الحزمة متوفرة على npm ضمن نطاق @zinn-digital. وتعمل في أي بيئة تشغيل JavaScript تدعم fetch.

npm install @zinn-digital/sdk

بدء سريع

اعرض المناطق العامة للاستضافة بدون مفتاح، ثم اعرض مواقعك الخاصة باستخدام مفتاح.

import { createApiClient } from "@zinn-digital/sdk";

const api = createApiClient({ baseUrl: "https://api.zinndigital.com" });

// Public catalogue endpoints need no key.
const { data: regions } = await api.GET("/v1/catalog/regions");
console.log(regions?.data.map((r) => r.slug));

// Everything else uses a per-organisation API key.
api.use({
  onRequest({ request }) {
    request.headers.set("Authorization", `Bearer ${process.env.ZINN_API_KEY}`);
  },
});

const { data, error } = await api.GET("/v1/sites", { params: { query: { limit: 5 } } });
if (error) throw new Error(error.error.message);
for (const site of data.data) console.log(site.name, site.status);

المصادقة

لا تتطلب نقاط نهاية الكتالوج العامة، مثل المناطق والخطط، أي بيانات اعتماد. وتستخدم كافة العناصر الأخرى مفتاح واجهة برمجة تطبيقات خاص بكل مؤسسة يُرسل كرمز حامل. ولا يحمل المفتاح سوى الأذونات التي تمنحها له عند إنشائه، ويمكنك إبطاله في أي وقت. احتفظ به في متغير بيئة أو في مخزن الأسرار الخاص بك، ولا تضعه مطلقًا في التعليمات البرمجية المصدرية.

أنشئ مفتاح API في لوحة التحكم الخاصة بك

ما تحصل عليه

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

المواقع والنطاقات ونظام أسماء النطاقات (DNS)، والفوترة، والدعم، وكل مجال آخر من مجالات واجهة برمجة التطبيقات (API) العامة. الاستجابات والأخطاء ذات أنواع محددة، ويتم تصدير أنواع المخططات البرمجية لاستخدامها في التعليمات البرمجية الخاصة بكم.

تم إنشاؤه تلقائيًا، ولم يُكتب يدويًا أبدًا

العميل هو openapi-fetch مبني على أنواع تم إنشاؤها من مواصفات OpenAPI الخاصة بنا. يتم نشر إصدار جديد تلقائيًا كلما تغيرت المواصفات، وبذلك تصل نقطة النهاية الجديدة إلى SDK دون الحاجة إلى كتابة غلاف من قِبل أي شخص.

صغير وقليل التبعيات

تبعية تشغيل واحدة و fetch أصلي. يعمل في Node.js، وفي المتصفح وفي بيئات تشغيل الحافة (edge)، وهو مرخص بموجب ترخيص MIT.

تمت الكتابة حتى النهاية

اقرأ سجلات نظام أسماء النطاقات (DNS) لنطاق ما وفلترها باستخدام نوع السجل الذي تحدده المواصفات.

import type { components } from "@zinn-digital/sdk";

type DnsRecord = components["schemas"]["DnsRecord"];

// Paths, parameters and responses are all typed from the OpenAPI spec:
// a misspelt query parameter is a compile error, not a silent no-op.
const { data: records } = await api.GET("/v1/domains/{domainId}/dns/records", {
  params: { path: { domainId: "YOUR_DOMAIN_ID" } },
});
const txt: DnsRecord[] = (records?.data ?? []).filter((r) => r.type === "TXT");
for (const record of txt) console.log(record.name, record.value);

الأسئلة

هل لديكم حزمة SDK للغة TypeScript أو JavaScript؟

نعم. قم بتثبيت @zinn-digital/sdk من npm. إنه عميل مكتوب بالكامل تم إنشاؤه من مواصفات OpenAPI الخاصة بنا، وهو يغطي واجهة برمجة التطبيقات (API) العامة بأكملها.

كيف أقوم بالمصادقة؟

أنشئ مفتاح API في صفحة مفاتيح API الخاصة بلوحة تحكمك وأرسله كرمز حامل في ترويسة Authorization. لا تتطلب نقاط نهاية الكتالوج العام أي مفتاح.

كيف يتم تحديث SDK باستمرار؟

يتم إنشاؤه من نفس مواصفات OpenAPI التي تم بناء واجهة برمجة التطبيقات منها، ويتم نشر إصدار جديد تلقائيًا كلما تغيرت تلك المواصفات.

استكشف كل نقطة نهاية

كل عملية يمكن لحزمة SDK استدعاؤها موصوفة في مرجع واجهة برمجة التطبيقات (API)، مع معاملاتها واستجاباتها وأذوناتها.

مرجع واجهة برمجة التطبيقات (API)