TypeScript SDK
Ҳостинги худро аз TypeScript идора кунед
@zinn-digital/sdk як муштарии пурра типизатсияшуда барои API-и Zinn Digital® мебошад. Ҳар як масир, параметр ва посух аз ҳамон мушаххасоти OpenAPI тавлид мешавад, ки худи API аз рӯи он сохта шудааст, бинобар ин муҳаррири шумо тамоми API-ро медонад ва хатои чопӣ хатои компилятсия ба ҳисоб меравад.
Насб кунед
Ин баста дар npm таҳти доираи @zinn-digital дастрас аст. Он дар ҳар як муҳити иҷрои JavaScript, ки дорои fetch мебошад, кор мекунад.
npm install @zinn-digital/sdkОғози зуд
Минтақаҳои оммавии мизбониро бе калид номбар кунед, сипас сайтҳои худро бо калид номбар кунед.
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);Автентификатсия
Нуқтаҳои ниҳоии феҳристи умумӣ, ба монанди минтақаҳо ва нақшаҳо, ба ҳеҷ гуна эътиборнома ниёз надоранд. Ҳама чизи дигар калиди API-и марбут ба созмонро истифода мебарад, ки ҳамчун bearer token фиристода мешавад. Калид танҳо иҷозатҳоеро дар бар мегирад, ки шумо ҳангоми сохтани он медиҳед ва шумо метавонед онро дар дилхоҳ вақт бекор кунед. Онро дар тағйирёбандаи муҳит ё анбори махфии худ нигоҳ доред, ҳеҷ гоҳ дар коди сарчашма нагузоред.
Он чӣ шумо ба даст меоред
Тамоми API-и оммавӣ, навъбандӣ шуда
Сомонаҳо, доменҳо ва DNS, ҳисобдорӣ, дастгирӣ ва ҳар як бахши дигари API-и умумӣ. Ҷавобҳо ва хатогиҳо дорои навъи муайян буда, навъҳои нақша барои коди худи шумо содир карда мешаванд.
Эҷодшуда, ҳеҷ гоҳ дастӣ навишта нашудааст
Муштарӣ openapi-fetch дар заминаи навъҳои аз хусусиятҳои OpenAPI-и мо тавлидшуда мебошад. Ҳар дафъае, ки хусусиятҳо тағйир меёбанд, нусхаи нав ба таври худкор нашр мешавад, бинобар ин нуқтаи ниҳоии нав бе навиштани парпеч аз ҷониби касе ба SDK дастрас мегардад.
Хурд ва вобастагиҳои камдошта
Яке вобастагии замони иҷро ва fetch-и аслӣ. Он дар Node.js, дар браузер ва дар муҳитҳои иҷрои edge кор мекунад ва дорои иҷозатномаи MIT мебошад.
То охир чоп шудааст
Сабтҳои DNS-и доменро хонед ва онҳоро аз рӯи навъи сабте, ки дар мушаххасот муайян шудааст, филтр кунед.
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);Саволҳо
Оё шумо SDK барои TypeScript ё JavaScript доред?
Ҳа. @zinn-digital/sdk-ро аз npm насб кунед. Ин як муштарии комилан типбандӣшуда мебошад, ки аз мушаххасоти OpenAPI-и мо сохта шудааст ва он тамоми API-и умумиро дар бар мегирад.
Чӣ тавр ман бояд аутентификатсия кунам?
Дар саҳифаи Калидҳои API дар панели идораи худ калиди API эҷод кунед ва онро ҳамчун нишонаи доро дар сарлавҳаи Authorization фиристед. Нуқтаҳои ниҳоии феҳристи умумӣ ба калид ниёз надоранд.
SDK чӣ гуна мунтазам нав карда мешавад?
Он аз ҳамон мушаххасоти OpenAPI тавлид мешавад, ки худи API аз он сохта шудааст, ва ҳар дафъае, ки ин мушаххасот тағйир меёбад, нусхаи нав ба таври худкор нашр мешавад.
Ҳар як нуқтаи ниҳоиро омӯзед
Ҳар як амале, ки SDK метавонад фаро хонад, дар маълумотномаи API бо параметрҳо, посухҳо ва иҷозатҳояш тавсиф шудааст.