TypeScript SDK
Xostingingizni TypeScript orqali boshqaring
@zinn-digital/sdk — bu Zinn Digital® API uchun toʻliq tiplashtirilgan mijoz. Har bir yoʻl, parametr va javob API yaratilgan OpenAPI spetsifikatsiyasining oʻzidan hosil qilinadi, shuning uchun muharriringiz butun APIʼni biladi va xato yozish kompilyatsiya xatosi hisoblanadi.
Oʻrnatish
Paket @zinn-digital qamrovi ostida npm platformasida mavjud. U fetch mavjud boʻlgan har qanday JavaScript ish vaqti muhitida ishlaydi.
npm install @zinn-digital/sdkTezkor boshlash
Kalitsiz ommaviy xosting hududlarini roʻyxatlang, soʻngra kalit bilan oʻz saytlaringizni roʻyxatlang.
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);Autentifikatsiya
Hududlar va tarif rejalari kabi umumiy katalog soʻnggi nuqtalari hech qanday hisob maʼlumotlarini talab qilmaydi. Qolgan barcha narsalar bearer token sifatida yuboriladigan tashkilot darajasidagi API kalitidan foydalanadi. Kalit faqat siz uni yaratishda bergan ruxsatlarga ega boʻladi va siz uni istalgan vaqtda bekor qilishingiz mumkin. Uni muhit oʻzgaruvchisida yoki maxfiy maʼlumotlar omborida saqlang, hech qachon manba kodida qoldirmang.
Sizga nimalar taqdim etiladi
Butun ommaviy API, tiplashtirilgan
Saytlar, domenlar va DNS, hisob-kitob, qoʻllab-quvvatlash hamda ommaviy API’ning boshqa har bir sohasi. Javoblar va xatoliklar turlarga ajratilgan boʻlib, sxema turlari sizning shaxsiy kodingiz uchun eksport qilinadi.
Yaratilgan, hech qachon qoʻlda yozilmagan
Mijoz bizning OpenAPI spetsifikatsiyamizdan yaratilgan turlar ustidagi openapi-fetch hisoblanadi. Spetsifikatsiya oʻzgargan har qanday holatda yangi versiya avtomatik ravishda eʼlon qilinadi, shuning uchun hech kim oʻram (wrapper) yozmasdan yangi oxirgi nuqta SDK ga yetib boradi.
Kichik va kam bogʻliqlikli
Bitta ishga tushirish vaqti bogʻliqligi va mahalliy fetch. U Node.js'da, brauzerda va edge muhitlarida ishlaydi hamda MIT litsenziyasiga ega.
Oxirigacha terilgan
Domenning DNS yozuvlarini oʻqing va ularni spetsifikatsiyada belgilangan yozuv turi boʻyicha filtrlang.
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);Savollar
Sizda TypeScript yoki JavaScript SDK bormi?
Ha. npm-dan @zinn-digital/sdk-ni oʻrnating. Bu bizning OpenAPI spetsifikatsiyamizdan yaratilgan toʻliq tiplashtirilgan mijoz boʻlib, barcha ommaviy API-ni qamrab oladi.
Qanday qilib autentifikatsiyadan oʻtaman?
Boshqaruv panelingizning API kalitlari sahifasida API kalitini yarating va uni Authorization sarlavhasida tashuvchi token (bearer token) sifatida yuboring. Ommaviy katalog oxirgi nuqtalari (endpoints) uchun kalit talab qilinmaydi.
SDK qanday qilib yangilangan holda saqlanadi?
U API yaratilgan oʻsha OpenAPI spetsifikatsiyasi asosida hosil qilinadi va ushbu spetsifikatsiya oʻzgargan har safar yangi versiya avtomatik ravishda eʼlon qilinadi.
Har bir yakuniy nuqtani oʻrganing
SDK chaqirishi mumkin bo'lgan har bir amal parametrlari, javoblari va ruxsatlari bilan birga API ma'lumotnomasida tavsiflangan.