@zinn-digital/sdk ni mteja wetu rasmi wa TypeScript kwa ajili ya Zinn Digital® API, iliyochapishwa kwenye npm. Kila njia, kigezo, na jibu lililomo huzalishwa kutoka kwa ubainifu uleule wa OpenAPI ambao API imejengwa kwayo, na toleo jipya huchapishwa kiotomatiki wakati wowote ubainifu huo unapobadilika. Mwongozo huu unaisakinisha, kuithibitisha, na kufanya miito yenu ya kwanza.
Sakinisha
npm install @zinn-digital/sdk
Inafanya kazi katika mazingira yoyote ya uendeshaji ya JavaScript yaliyo na fetch: Node.js, kivinjari na mazingira ya edge. Ina utegemezi mmoja wa wakati wa uendeshaji, openapi-fetch, na imepewa leseni ya MIT.
Unda ufunguo wa API
Fungua ukurasa wa Vifunguo vya API wa dashibodi yako (app.zinndigital.com/api-keys) kisha ubonyeze Unda ufunguo. Upe ufunguo jina na ruhusa zile tu ambazo msimbo wako unahitaji — kwa mfano sites.view ili kuorodhesha tovuti. Ufunguo huonyeshwa mara moja tu; uhifadhi kwenye kigezo cha mazingira au hifadhi yako ya siri, kamwe usiuweke kwenye msimbo chanzo. Unaweza kubatilisha ufunguo wakati wowote kwenye ukurasa huo huo.
Vituo vya mwisho vya katalogi ya umma, kama vile maeneo ya upangishaji na mipango, havihitaji ufunguo wowote.
Miito yako ya kwanza
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);
Endesha kwa ZINN_API_KEY=zdk_live_… npx tsx first-calls.ts. Mstari wa kwanza unachapisha maeneo ya upangishaji, kisha mstari mmoja kwa kila tovuti.
Aina kwa ajili ya msimbo wako mwenyewe
Aina za skima zimesafirishwa, kwa hivyo vitendaji vyako mwenyewe vinaweza kutumia miundo ya API:
import type { components } from "@zinn-digital/sdk";
type Site = components["schemas"]["Site"];
type DnsRecord = components["schemas"]["DnsRecord"];
Njia, kigezo au sehemu iliyoandikwa vibaya ni kosa la uundaji badala ya ombi ambalo hufanya jambo lisilo sahihi kimyakimya.
Makosa
Kila wito hurejesha { data, error, response }. Kwenye jibu ambalo si la 2xx data haijafafanuliwa na error ni bahasha ya kosa ya API: error.error.code, error.error.message inayosomeka na binadamu na, kwa hitilafu za uthibitishaji, error.error.details inayotaja kila sehemu. 403 inamaanisha kuwa ufunguo hauna ruhusa ambayo kituo cha mwisho kinahitaji — tengeneza ufunguo wenye ruhusa hiyo badala ya kutumia tena ule wenye ruhusa zaidi.
Wapi pa kwenda baadaye
- Mwongozo kwenye tovuti yetu: zinndigital.com/developers/sdk-typescript
- Kila kituo cha mwisho, vigezo vyake na ruhusa yake: zinndigital.com/developers/api
- Kifurushi kwenye npm: npmjs.com/package/@zinn-digital/sdk