کیت توسعه نرمافزار TypeScript
میزبانی خود را از طریق TypeScript مدیریت کنید
کتابخانه @zinn-digital/sdk یک کلاینت کاملاً نوعبندیشده (fully typed) برای Zinn Digital® API است. هر مسیر، پارامتر و پاسخی از همان مشخصات OpenAPI تولید شده است که API از آن ساخته شده است، بنابراین ویرایشگر شما کل API را میشناسد و هرگونه اشتباه تایپی یک خطای کامپایل است.
نصب
بسته در 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 عمومی. پاسخها و خطاها دارای نوع مشخص (typed) هستند و انواع طرحواره برای کد خودتان صادر میشوند.
تولیدشده، هرگز دستنویس نشده
کلاینت همان 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 که API از آن ساخته شده تولید میشود، و هر زمان که آن مشخصات تغییر کند نسخه جدیدی بهطور خودکار منتشر میشود.
کاوش هر نقطه پایانی
هر عملیاتی که SDK میتواند فراخوانی کند، همراه با پارامترها، پاسخها و مجوزهای مربوطهاش در مرجع API شرح داده شده است.