TypeScript SDK

Gudanar da shirin bakuncin ku daga TypeScript

@zinn-digital/sdk abokin ciniki ne mai cikakken rubutu don Zinn Digital® API. Kowane tafarki, ma'auni da amsa ana samar da su daga ƙayyadaddun OpenAPI ɗaya wanda aka gina API ɗin daga ciki, don haka editan ku ya san duka API ɗin kuma kuskuren rubutu kuskuren haɗawa (compile error) ne.

Duk takardun mai haɓakawa →

Sanya

Kunshin yana kan npm a karkashin ikon @zinn-digital. Yana aiki a cikin kowane yanayin aiki na JavaScript wanda ke da fetch.

npm install @zinn-digital/sdk

Fara cikin sauri

Jera yankunan karɓar baƙuncin yanar gizo na jama'a ba tare da mabuɗi ba, sannan ka jera shafukanka tare da guda ɗaya.

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);

Tabbatarwa

Teburan kundayen adireshi na jama'a, kamar yankuna da tsare-tsare, ba sa buƙatar kowane shaidar shiga. Duk wani abu daban yana amfani da maɓallin API na kowace ƙungiya wanda aka aika a matsayin bearer token. Maɓalli yana ɗaukar izinin da ka ba shi kawai lokacin da ka ƙirƙire shi, kuma za ka iya soke shi a kowane lokaci. Ajiye shi a cikin environment variable ko ma'ajiyar sirrinka, kada ka taɓa sanya shi a cikin lambar asali (source code).

Ƙirƙiri maɓallin API a allon kula na ku

Abin da za ku samu

Duk API na jama'a, wanda aka rarraba

Shafuka, yankuna da DNS, biyan kudi, tallafi da kowane yanki na API na jama'a. Amsoshi da kurakurai an rarraba nau'ikansu, kuma ana fitar da nau'ikan tsarin don lambar ku.

Wanda aka samar ta atomatik, ba a taba rubuta da hannu ba

Abokin ciniki shine openapi-fetch akan nau'ikan da aka samar daga ƙayyadaddun OpenAPI ɗinmu. Ana buga sabon salo ta atomatik a duk lokacin da ƙayyadaddun suka canza, don haka sabon madogara (endpoint) yana isa ga SDK ba tare da kowa ya rubuta mayafi (wrapper) ba.

Ƙarami mai ƙarancin dogaro

Dogaro guda ɗaya na lokacin aiki da asalin fetch. Yana aiki a cikin Node.js, a cikin burauza da a cikin yanayin aiki na edge, kuma yana da lasisin MIT.

An rubuta har zuwa ƙasa

Karanta bayanan DNS na wani yanki kuma tace su ta amfani da nau'in bayanan da ƙayyadaddun bayanai suka bayyana.

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);

Tambayoyi

Kuna da SDK na TypeScript ko JavaScript?

Ee. Shigar da @zinn-digital/sdk daga npm. Abokin ciniki ne da aka rubuta cikakke wanda aka kirkira daga takamaiman bayanin OpenAPI namu, kuma yana rufe dukkan API na jama'a.

Ta yaya zan tabbatar da kaina?

Ƙirƙiri maɓallin API a shafin Maɓallan API na allon sarrafawarku kuma aika shi a matsayin bearer token a cikin kanun Authorization. Ƙarshen kundayen adireshi na jama'a ba sa buƙatar kowane maɓalli.

Ta yaya ake sabunta SDK a kai a kai?

Ana samar da shi ne daga ƙayyadaddun OpenAPI ɗaya da aka gina API ɗin daga gare ta, kuma ana buga sabon babi kai tsaye duk lokacin da aka canza wannan ƙa'idar.

Bincika kowace madogara

Kowace aiki da SDK za ta iya kira an bayyana ta a cikin bayanan API, tare da ma'aunan ta, martanoni da izini.

Bayanin API