TypeScript SDK
Pamahalaan ang iyong hosting mula sa TypeScript
Ang @zinn-digital/sdk ay isang fully typed na client para sa Zinn Digital® API. Bawat path, parameter, at tugon ay nabubuo mula sa parehong detalye ng OpenAPI kung saan binuo ang API, kaya alam ng iyong editor ang buong API at ang maling pag-type ay isang compile error.
I-install
Ang package ay nasa npm sa ilalim ng saklaw na @zinn-digital. Gumagana ito sa anumang runtime ng JavaScript na mayroong fetch.
npm install @zinn-digital/sdkMabilisang pagsisimula
Ilista ang mga pampublikong rehiyon ng hosting nang walang key, pagkatapos ay ilista ang sarili mong mga site gamit ang isa.
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);Pagpapatunay
Ang mga pampublikong endpoint ng katalogo, tulad ng mga rehiyon at plano, ay hindi nangangailangan ng kredensyal. Ang lahat ng iba pa ay gumagamit ng API key bawat organisasyon na ipinapadala bilang bearer token. Ang isang key ay nagtataglay lamang ng mga pahintulot na ibinibigay mo rito kapag nilikha mo ito, at maaari mo itong bawiin anumang oras. Panatilihin ito sa isang environment variable o sa iyong secret store, huwag kailanman sa source code.
Ang makukuha mo
Ang buong pampublikong API, may uri
Mga site, domain at DNS, pagsingil, suporta at bawat iba pang bahagi ng pampublikong API. Naka-type ang mga tugon at error, at na-export ang mga uri ng schema para sa sarili ninyong code.
Nagawa nang awtomatiko, hindi kailanman isinulat gamit ang kamay
Ang client ay openapi-fetch sa mga uri na binuo mula sa aming detalye ng OpenAPI. Awtomatikong nai-publish ang isang bagong bersyon sa tuwing nagbabago ang detalye, kaya nakakarating ang isang bagong endpoint sa SDK nang hindi kailangang magsulat ng wrapper ang sinuman.
Maliit at kaunti ang dependency
Isang dependency sa runtime at katutubong fetch. Gumagana ito sa Node.js, sa browser at sa mga runtime sa edge, at may lisensyang MIT.
Na-type hanggang sa dulo sa ibaba
Basahin ang mga DNS record ng isang domain at i-filter ang mga ito gamit ang uri ng record na tinutukoy ng detalye.
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);Mga Tanong
Mayroon ba kayong TypeScript o JavaScript SDK?
Oo. I-install ang @zinn-digital/sdk mula sa npm. Isa itong fully typed na client na nabuo mula sa aming detalye ng OpenAPI, at sinasaklaw nito ang buong pampublikong API.
Paano ako magpapatotoo?
Gumawa ng API key sa pahina ng Mga API key ng iyong dashboard at ipadala ito bilang bearer token sa Authorization header. Ang mga pampublikong endpoint ng katalogo ay hindi nangangailangan ng key.
Paano pinananatiling napapanahon ang SDK?
Nabubuo ito mula sa parehong detalye ng OpenAPI kung saan binuo ang API, at awtomatikong nai-publish ang isang bagong bersyon sa tuwing magbabago ang detalyeng iyon.
Tuklasin ang bawat endpoint
Ang bawat operasyon na maaaring tawagin ng SDK ay inilalarawan sa sanggunian ng API, kasama ang mga parameter, tugon, at pahintulot nito.