@zinn-digital/sdk — bu Zinn Digital® API uchun npm platformasida e'lon qilingan rasmiy TypeScript mijozimizdir. Undagi har bir yoʻl, parametr va javob API yaratilgan OpenAPI spetsifikatsiyasi asosida shakllantiriladi hamda ushbu spetsifikatsiya oʻzgargan zahoti yangi versiya avtomatik ravishda e'lon qilinadi. Ushbu qoʻllanma uni oʻrnatadi, autentifikatsiyadan oʻtkazadi va dastlabki chaqiruvlaringizni amalga oshiradi.
Oʻrnatish
npm install @zinn-digital/sdk
U fetch imkoniyatiga ega har qanday JavaScript ish muhitida ishlaydi: Node.js, brauzer va edge tizimlarida. U openapi-fetch nomli bitta ish vaqti bogʻliqligiga ega va MIT litsenziyasiga ega.
API kalitini yaratish
Boshqaruv panelingizdagi API kalitlari sahifasini (app.zinndigital.com/api-keys) oching va Kalit yaratish tugmasini bosing. Kalitga nom bering va faqat kodingizga kerakli ruxsatlarni belgilang — masalan, saytlar roʻyxatini olish uchun sites.view. Kalit faqat bir marta koʻrsatiladi; uni hech qachon manba kodida emas, balki muhit oʻzgaruvchisida yoki maxfiy maʼlumotlar omboringizda saqlang. Kalitni istalgan vaqtda xuddi shu sahifada bekor qilishingiz mumkin.
Xosting mintaqalari va rejalari kabi umumiy katalog soʻnggi nuqtalari uchun umuman kalit talab qilinmaydi.
Sizning dastlabki chaqiruvlaringiz
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);
Uni ZINN_API_KEY=zdk_live_… npx tsx first-calls.ts orqali ishga tushiring. Birinchi qatorda hosting hududlari, soʻngra har bir sayt uchun bittadan qator chop etiladi.
Oʻz kodingiz uchun turlar
Sxema turlari eksport qilinadi, shuning uchun oʻz funksiyalaringiz API shakllaridan foydalanishi mumkin:
import type { components } from "@zinn-digital/sdk";
type Site = components["schemas"]["Site"];
type DnsRecord = components["schemas"]["DnsRecord"];
Notoʻgʻri yozilgan yoʻl, parametr yoki maydon yashirincha notoʻgʻri ish bajaradigan soʻrov emas, balki kompilyatsiya xatosi hisoblanadi.
Xatolar
Har bir chaqiruv { data, error, response } qaytaradi. 2xx boʻlmagan javobda data aniqlanmagan boʻladi va error API'ning xato qobigʻidir: error.error.code, inson oʻqiy oladigan error.error.message hamda tekshiruv muvaffaqiyatsizliklari uchun har bir maydonni koʻrsatuvchi error.error.details. 403 kalitda oxirgi nuqta talab qiladigan ruxsat yoʻqligini bildiradi — koʻproq ruxsatga ega kalitdan qayta foydalanishdan koʻra, aynan shu ruxsatga ega kalit yarating.
Keyingi qadamlar
- Veb-saytimizdagi qoʻllanma: zinndigital.com/developers/sdk-typescript
- Har bir oxirgi nuqta, uning parametrlari va uning ruxsati: zinndigital.com/developers/api
- npm'dagi paket: npmjs.com/package/@zinn-digital/sdk