ערכת פיתוח תוכנה (SDK) ל-TypeScript
נהלו את האחסון שלכם מתוך TypeScript
@zinn-digital/sdk הוא לקוח בעל טיפוסיות מלאה (fully typed) עבור ה-API של Zinn Digital®. כל נתיב, פרמטר ותגובה מיוצרים מאותו מפרט OpenAPI שממנו בנוי ה-API, כך שעורך הקוד שלכם מכיר את ה-API כולו ושגיאת הקלדה היא שגיאת קומפילציה.
התקנה
החבילה זמינה ב-npm תחת ה-scope של @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 לכל ארגון הנשלח כאסימון נושא (bearer token). מפתח נושא רק את ההרשאות שאתם מעניקים לו בעת יצירתו, ותוכלו לבטל אותו בכל עת. שמרו אותו במשתנה סביבה או במאגר הסודות שלכם, לעולם לא בקוד המקור.
מה מקבלים
כל ה-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, יחד עם הפרמטרים, התגובות וההרשאות שלה.