TypeScript SDK
Ṣakoso igbalejo rẹ lati TypeScript
@zinn-digital/sdk jẹ́ oníbàárà tí a tẹ tẹ́lẹ̀ pátápátá fún Zinn Digital® API. Gbogbo ipa-ọ̀nà, pàrámítà àti ìdáhùn ni a ṣe láti inú àkójọpọ̀ ìmọ̀ ẹ̀rọ OpenAPI kan náà tí a fi kọ́ API náà, nítorí náà olùṣàtúnṣe rẹ mọ gbogbo API náà tí àṣìṣe ìtẹ̀wé sì jẹ́ àṣìṣe ìṣàkójọpọ̀.
Fi sii
Apo naa wa lori npm labẹ agbegbe @zinn-digital. O n ṣiṣẹ ni eyikeyi agbegbe iṣẹ JavaScript ti o ni fetch.
npm install @zinn-digital/sdkÌbẹ̀rẹ̀ kíákíá
Ṣe akojọ awọn agbegbe igbalejo gbogbo eniyan laisi kọkọrọ kan, lẹhinna ṣe akojọ awọn aaye tirẹ pẹlu ọkan.
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);Ijẹrisi
Àwọn ojú-ọ̀nà kátalọ́ọ̀gù ti gbogbo ènìyàn, bíi àwọn agbègbè àti àwọn ètò, kò nílò ẹ̀rí ìdánimọ̀ kankan. Gbogbo nǹkan mìíràn ń lo kókó API fún ètò kọ̀ọ̀kan tí a fi ránṣẹ́ bíi bearer token. Kókó kan ń gbé àwọn àṣẹ tí ẹ fún un nígbà tí ẹ ṣẹ̀dá rẹ̀ nìkan, ẹ sì lè fagilé e nígbàkúgbà. Tọ́jú rẹ̀ sínú àyípadà àyíká tàbí ibi ìtọ́jú àsírí yín, kì í ṣe nínú àkójọ koodu orísun láéláé.
Ohun tí wàá rí gbà
Gbogbo API gbogbogbo, pẹlu iru
Àwọn ojúlé wẹ́ẹ̀bù, àwọn orúkọ ààyè àti DNS, ìṣírò owó, ìtìlẹ́yìn àti gbogbo agbègbè mìíràn ti API gbogbogbòò. Àwọn ìdáhùn àti àwọn àṣìṣe ní àwọn irú tí a sọ pàtó, àti pé a gbé àwọn irú ètò àkọsílẹ̀ jáde fún kóòdù tirẹ̀.
Ti a ṣẹda, ko ti kọ pẹlu ọwọ ri
Oníbàárà náà jẹ́ openapi-fetch lórí àwọn irú tí a pèsè láti inú àpèjúwe OpenAPI wa. A máa ń tẹ ẹ̀tọ̀ tuntun jáde lẹ́sẹ̀kẹsẹ̀ nígbàkúgbà tí àpèjúwe bá yípadà, nítorí náà ojú-ọ̀nà ìparí tuntun máa ń dé inú SDK láìsí pé ẹnì kankan kọ ẹ̀gbàrá kankan.
Kere pẹlu awọn igbẹkẹle diẹ
Ìgbẹ́kẹ̀lé àkókò-ìṣiṣẹ́ kan ṣoṣo àti fetch àbínibí. Ó ń ṣiṣẹ́ nínú Node.js, nínú awò-kiri àti nínú àwọn àyíká edge, ó sì ní ìwé-àṣẹ MIT.
A tẹ ẹ titi de isalẹ
Ka àwọn àkọsílẹ̀ DNS ti orúkọ ààyè kan kí o sì ṣe àlẹ̀mọ́ wọn pẹ̀lú irú àkọsílẹ̀ tí àpèjúwe náà làkalẹ̀.
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);Àwọn Ìbéèrè
Ṣe ẹ ni TypeScript tabi JavaScript SDK kan?
Bẹ́ẹ̀ ni. Fi @zinn-digital/sdk sori ẹ̀rọ láti npm. Ó jẹ́ oníbàárà tí a tẹ pátápátá tí a mú jáde láti inú ìṣàlàyé OpenAPI wa, ó sì ní gbogbo API ti gbogbo ènìyàn nínú.
Báwo ni mo ṣe lè fọwọ́ sí i?
Ṣẹ̀dá kọ́kọ́rọ́ API kan lórí ojú-ewé àwọn kọ́kọ́rọ́ API ti bọ́ọ̀dù ìdarí rẹ kí o sì fi ránṣẹ́ gẹ́gẹ́ bíi àmì bearer nínú àkọlé Authorization. Àwọn ojú-ìpari àkójọ ìwé gbogbogbò kò nílò kọ́kọ́rọ́ kankan.
Bawo ni a ṣe n jẹ ki SDK wa ni imudojuiwọn?
A ṣe àgbékalẹ̀ rẹ̀ láti inú pàtó OpenAPI kan náà tí a fi kọ́ API náà, a sì máa ń tẹ ẹ̀yà tuntun jáde lẹ́sẹ̀kẹsẹ̀ nígbàkúgbà tí pàtó yẹn bá yípadà.
Ṣawari gbogbo aaye ipari
Gbogbo iṣẹ́ tí SDK lè pè ni a ṣe àpèjúwe rẹ̀ nínú ìtọ́kasí API, pẹ̀lú àwọn pàrámítà, àwọn ìdáhùn àti àwọn àṣẹ rẹ̀.