@zinn-digital/sdk በnpm ላይ የታተመ፣ ለZinn Digital® ኤፒአይ (API) ይፋዊው የTypeScript ደንበኛችን ነው። በእሱ ውስጥ ያለ እያንዳንዱ ዱካ፣ መለኪያ እና ምላሽ ኤፒአይው ከተገነባበት ተመሳሳይ የOpenAPI መግለጫ የተፈጠረ ሲሆን ያ መግለጫ በተለወጠ ቁጥር አዲስ ስሪት በራስ-ሰር ይታተማል። ይህ መመሪያ ይጭነዋል፣ ያረጋግጠዋል እንዲሁም የመጀመሪያ ጥሪዎችዎን ያደርጋል።
ጫን
npm install @zinn-digital/sdk
እሱ fetch ባለው በማንኛውም የJavaScript ማስኬጃ ውስጥ ይሰራል፦ Node.js፣ አሳሹ እና የedge ማስኬጃዎች። አንድ የማስኬጃ ጥገኝነት አለው፣ openapi-fetch፣ እንዲሁም በMIT ፈቃድ የተሰጠው ነው።
የኤፒአይ ቁልፍ ይፍጠሩ
የዳሽቦርድዎን የኤፒአይ ቁልፎች ገጽ (app.zinndigital.com/api-keys) ይክፈቱ እና ቁልፍ ፍጠርን ይጫኑ። ለቁልፉ ስም እና ኮድዎ የሚፈልጋቸውን ፈቃዶች ብቻ ይስጡት — ለምሳሌ ጣቢያዎችን ለመዘርዘር sites.view። ቁልፉ አንዴ ብቻ ይታያል፤ በአካባቢ ተለዋዋጭ ወይም በሚስጥር ማስቀመጫዎ ውስጥ ያስቀምጡት፣ በጭራሽ በምንጭ ኮድ ውስጥ አይደለም። በተመሳሳይ ገጽ ላይ በማንኛውም ጊዜ ቁልፍን መሰረዝ ይችላሉ።
እንደ ማስተናገጃ ክልሎች እና እቅዶች ያሉ ይፋዊ የካታሎግ የመጨረሻ ነጥቦች በጭራሽ ምንም ቁልፍ አያስፈልጋቸውም።
የመጀመሪያ ጥሪዎችዎ
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);
በ ZINN_API_KEY=zdk_live_… npx tsx first-calls.ts ያሂዱት። የመጀመሪያው መስመር የማስተናገጃ ክልሎችን ያትማል፣ ከዚያም ለእያንዳንዱ ጣቢያ አንድ መስመር።
ለእራስዎ ኮድ ዓይነቶች
የእቅድ ዓይነቶች ወደ ውጭ ተልከዋል፣ ስለዚህ የእርስዎ የራሱ ተግባራት የኤፒአይን ቅርጾች መጠቀም ይችላሉ፡
import type { components } from "@zinn-digital/sdk";
type Site = components["schemas"]["Site"];
type DnsRecord = components["schemas"]["DnsRecord"];
የተሳሳተ ፊደል ያለው ዱካ፣ ፓራሜትር ወይም መስክ በጸጥታ የተሳሳተ ነገር ከሚያደርግ ጥያቄ ይልቅ የማጠናቀር (compile) ስህተት ነው።
ስህተቶች
እያንዳንዱ ጥሪ { data, error, response } ይመልሳል። ከ2xx ውጭ በሆነ ምላሽ ላይ data ያልተገለጸ (undefined) ሲሆን error ደግሞ የኤፒአይ የስህተት ኤንቨሎፕ ነው፡ error.error.code፣ በሰው ሊነበብ የሚችል error.error.message እና፣ ለማረጋገጫ ውድቀቶች፣ እያንዳንዱን መስክ የሚሰይም error.error.details። 403 ማለት ቁልፉ የመጨረሻው ነጥብ (endpoint) የሚፈልገውን ፈቃድ አልያዘም ማለት ነው — የበለጠ ካለው አንዱን እንደገና ከመጠቀም ይልቅ ያ ፈቃድ ያለው ቁልፍ ይፍጠሩ።
በመቀጠል ወዴት መሄድ እንዳለብዎ
- በድረ-ገጻችን ላይ ያለው መመሪያ፡ zinndigital.com/developers/sdk-typescript
- እያንዳንዱ የመጨረሻ ነጥብ፣ ፓራሜትሮቹ እና ፈቃዱ፡ zinndigital.com/developers/api
- በnpm ላይ ያለው ጥቅል፡ npmjs.com/package/@zinn-digital/sdk