TypeScript SDK
Управљајте својим хостингом из TypeScript-а
@zinn-digital/sdk је потпуно типизиран клијент за 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 кључ по организацији који се шаље као bearer token. Кључ садржи само дозволе које му доделите када га креирате и можете га опозвати у било ком тренутку. Чувајте га у варијабли окружења или у свом спремишту тајни, никада у изворном коду.
Шта добијате
Цео јавни API, типизиран
Сајтови, домени и DNS, наплата, подршка и свака друга област јавног API-ја. Одговори и грешке су типизирани, а типови шема се извозе за ваш сопствени код.
Генерисано, никада ручно писано
Клијент је openapi-fetch преко типова генерисаних из наше OpenAPI спецификације. Нова верзија се аутоматски објављује кад год се спецификација промени, тако да нова крајња тачка стиже у SDK без потребе да ико пише омотач.
Мали и са мало зависности
Једна зависност у време извршавања и изворни fetch. Ради у Node.js-у, у прегледачу и у ивичним окружењима извршавања, и лиценциран је под 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);Питања
Да ли имате TypeScript или JavaScript SDK?
Да. Инсталирајте @zinn-digital/sdk из npm-а. То је потпуно типизиран клијент генерисан из наше OpenAPI спецификације и покрива цео јавни API.
Како да се аутентификујем?
Направите API кључ на страници API кључеви на својој контролној табли и пошаљите га као bearer токен у заглављу Authorization. Јавним крајњим тачкама каталога није потребан кључ.
Како се SDK одржава ажурним?
Генерише се из исте OpenAPI спецификације на основу које је изграђен и API, а нова верзија се аутоматски објављује сваки пут када се та спецификација промени.
Истражите сваку крајњу тачку
Свака операција коју SDK може да позове описана је у API референци, заједно са својим параметрима, одговорима и дозволама.