npm-ൽ പ്രസിദ്ധീകരിച്ചിട്ടുള്ള Zinn Digital® API-യ്ക്കായുള്ള ഞങ്ങളുടെ ഔദ്യോഗിക TypeScript ക്ലയന്റാണ് @zinn-digital/sdk. ഇതിലെ ഓരോ പാത്തും പാരാമീറ്ററും പ്രതികരണവും API നിർമ്മിച്ചിരിക്കുന്ന അതേ OpenAPI സ്പെസിഫിക്കേഷനിൽ നിന്നാണ് ജനറേറ്റ് ചെയ്യുന്നത്, ആ സ്പെസിഫിക്കേഷൻ മാറുമ്പോഴെല്ലാം ഒരു പുതിയ പതിപ്പ് സ്വയമേവ പ്രസിദ്ധീകരിക്കപ്പെടും. ഈ ഗൈഡ് ഇത് ഇൻസ്റ്റാൾ ചെയ്യുകയും പ്രാമാണീകരിക്കുകയും നിങ്ങളുടെ ആദ്യ കോളുകൾ നടത്തുകയും ചെയ്യുന്നു.
ഇൻസ്റ്റാൾ ചെയ്യുക
npm install @zinn-digital/sdk
fetch ഉള്ള ഏത് JavaScript റൺടൈമിലും ഇത് പ്രവർത്തിക്കുന്നു: Node.js, ബ്രൗസർ, എഡ്ജ് റൺടൈമുകൾ. ഇതിന് openapi-fetch എന്ന ഒരു റൺടൈം ഡിപൻഡൻസി മാത്രമേയുള്ളൂ, കൂടാതെ ഇത് MIT ലൈസൻസുള്ളതുമാണ്.
ഒരു API കീ സൃഷ്ടിക്കുക
നിങ്ങളുടെ ഡാഷ്ബോർഡിലെ API കീകൾ പേജ് (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 ഉപയോഗിച്ച് ഇത് പ്രവർത്തിപ്പിക്കുക. ആദ്യ വരി ഹോസ്റ്റിംഗ് മേഖലകളെ പ്രിന്റ് ചെയ്യുന്നു, തുടർന്ന് ഓരോ സൈറ്റിനും ഒരു വരി വീതം.
നിങ്ങളുടെ സ്വന്തം കോഡിനായുള്ള തരങ്ങൾ
സ്കീമ തരങ്ങൾ എക്സ്പോർട്ട് ചെയ്തിരിക്കുന്നു, അതിനാൽ നിങ്ങളുടെ സ്വന്തം ഫംഗ്ഷനുകൾക്ക് API-യുടെ രൂപങ്ങൾ ഉപയോഗിക്കാൻ കഴിയും:
import type { components } from "@zinn-digital/sdk";
type Site = components["schemas"]["Site"];
type DnsRecord = components["schemas"]["DnsRecord"];
തെറ്റായി എഴുതിയ പാത്തോ പാരാമീറ്ററോ ഫീൽഡോ എന്നത് തെറ്റായ കാര്യം നിശബ്ദമായി ചെയ്യുന്ന ഒരു അഭ്യർത്ഥനയ്ക്ക് പകരം ഒരു കംപൈൽ പിശകാണ്.
പിശകുകൾ
ഓരോ കോളും { data, error, response } തിരികെ നൽകുന്നു. 2xx അല്ലാത്ത ഒരു പ്രതികരണത്തിൽ data എന്നത് undefined ആയിരിക്കും, ഒപ്പം error എന്നത് API-യുടെ പിശക് വിവരണം ആയിരിക്കും: error.error.code, വായിക്കാൻ കഴിയുന്ന error.error.message, കൂടാതെ സാധുത പരിശോധനയിലെ പരാജയങ്ങൾക്ക് ഓരോ ഫീൽഡും വ്യക്തമാക്കുന്ന error.error.details. എൻഡ്പോയിന്റിന് ആവശ്യമായ അനുമതി കീയിൽ ഇല്ല എന്നാണ് 403 സൂചിപ്പിക്കുന്നത് — കൂടുതൽ അനുമതികളുള്ള ഒരെണ്ണം വീണ്ടും ഉപയോഗിക്കുന്നതിന് പകരം ആ അനുമതിയോടെ ഒരു കീ സൃഷ്ടിക്കുക.
അടുത്തതായി എങ്ങോട്ട് പോകണം
- ഞങ്ങളുടെ വെബ്സൈറ്റിലെ ഗൈഡ്: zinndigital.com/developers/sdk-typescript
- ഓരോ എൻഡ്പോയിന്റും അതിൻ്റെ പാരാമീറ്ററുകളും അതിൻ്റെ അനുമതിയും: zinndigital.com/developers/api
- npm-ലെ പാക്കേജ്: npmjs.com/package/@zinn-digital/sdk