@zinn-digital/sdk jẹ́ oníbàárà TypeScript aláṣẹ wa fún Zinn Digital® API, tí a tẹ̀jáde lórí npm. Gbogbo ipa-ọ̀nà, pàrámítà àti ìdáhùn nínú rẹ̀ ni a mú jáde láti inú ìṣàpèjúwe OpenAPI kan náà tí a fi kọ́ API náà, bẹ́ẹ̀ sì ni a máa ń tẹ ẹ̀dà tuntun jáde lẹ́sẹ̀kẹsẹ̀ nígbàkúgbà tí ìṣàpèjúwe yẹn bá yípadà. Ìtọ́sọ́nà yìí yóò fi sori ẹ̀rọ, yóò ṣe ìfọwọ́sí rẹ̀, yóò sì ṣe àwọn ìpè àkọ́kọ́ rẹ.
Fi sori ẹ̀rọ
npm install @zinn-digital/sdk
Ó ń ṣiṣẹ́ nínú àyíká ìṣiṣẹ́ JavaScript èyíkéyìí tí ó ní fetch: Node.js, aṣàwárí àti àwọn àyíká ìṣiṣẹ́ edge. Ó ní ìgbẹ́kẹ̀lé àkókò ìṣiṣẹ́ kan, openapi-fetch, ó sì ní ìwé-àṣẹ MIT.
Ṣẹ̀dá kókóró API kan
Ṣí ojú-ewé Àwọn kókóró API ti pẹpẹ ìṣàkóso yín (app.zinndigital.com/api-keys) kí ẹ sì tẹ Ṣẹ̀dá kókóró kan. Fún kókóró náà ní orúkọ kan àti àwọn àṣẹ tí koodu yín nílò nìkan — fún àpẹẹrẹ sites.view láti ṣe àtòjọ àwọn ojú-òpó wẹ́ẹ̀bù. Kókóró náà máa hàn lẹ́ẹ̀kan ṣoṣo; tọ́jú rẹ̀ sínú oríṣiríṣi àyíká (environment variable) tàbí ibi ìpamọ́ àṣírí yín, kì í ṣe nínú koodu orísun rárá. Ẹ lè fagilé kókóró kan nígbàkúgbà lórí ojú-ewé kan náà yìí.
Àwọn ibi-ìparí ìwé-àkójọ ti gbogbogbò, bíi àwọn agbègbè àlejò-wẹ́ẹ̀bù àti àwọn ètò, kò nílò kókóró kankan rárá.
Àwọn ìpè àkọ́kọ́ yín
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);
Ṣiṣẹ́ rẹ̀ pẹ̀lú ZINN_API_KEY=zdk_live_… npx tsx first-calls.ts. Ìlà àkọ́kọ́ ń tẹ àwọn agbègbè ìgbàlejò jáde, lẹ́yìn náà ìlà kan fún ojúlé kọ̀ọ̀kan.
Àwọn irú fún kóòdù tirẹ̀
Àwọn irú àkójọ ìlànà ni a ti fún jáde, nítorí náà àwọn iṣẹ́ tirẹ̀ lè lo àwọn ìrísí ti API:
import type { components } from "@zinn-digital/sdk";
type Site = components["schemas"]["Site"];
type DnsRecord = components["schemas"]["DnsRecord"];
Opa, paramita tabi aaye ti a kọ ti ko tọ jẹ aṣiṣe akopọ dipo ibeere ti o ṣe ohun ti ko tọ ni idakẹjẹ.
Awọn aṣiṣe
Ipe kọọkan n da { data, error, response } pada. Lori idahun ti kii ṣe 2xx data ko ni asọye ati pe error jẹ apo aṣiṣe API: error.error.code, error.error.message ti eniyan le ka ati, fun awọn ikuna ifọwọsi, error.error.details ti o darukọ aaye kọọkan. 403 kan tumọ si pe bọtini ko gbe aṣẹ ti opin-ọna nilo — ṣẹda bọtini kan pẹlu aṣẹ yẹn dipo atunlo ọkan ti o ni diẹ sii.
Ibi ti a n lọ nigbamii
- Itọsọna lori oju opo wẹẹbu wa: zinndigital.com/developers/sdk-typescript
- Opin-ọna kọọkan, awọn paramita rẹ ati aṣẹ rẹ: zinndigital.com/developers/api
- Apo lori npm: npmjs.com/package/@zinn-digital/sdk