TypeScript SDK
TypeScript-ൽ നിന്ന് നിങ്ങളുടെ ഹോസ്റ്റിംഗ് നിയന്ത്രിക്കുക
Zinn Digital® API-യ്ക്കായുള്ള പൂർണ്ണമായി ടൈപ്പ് ചെയ്ത ക്ലയന്റാണ് @zinn-digital/sdk. ഓരോ പാതയും പാരാമീറ്ററും പ്രതികരണവും API നിർമ്മിച്ചിരിക്കുന്ന അതേ OpenAPI സ്പെസിഫിക്കേഷനിൽ നിന്നാണ് സൃഷ്ടിച്ചിരിക്കുന്നത്, അതിനാൽ നിങ്ങളുടെ എഡിറ്റർക്ക് മുഴുവൻ API-യും അറിയാം, കൂടാതെ ഒരു ടൈപ്പോ ഉണ്ടെങ്കിൽ അത് കമ്പൈൽ പിശകാകുന്നു.
ഇൻസ്റ്റാൾ ചെയ്യുക
@zinn-digital സ്കോപ്പിന് കീഴിൽ പാക്കേജ് npm-ൽ ലഭ്യമാണ്. fetch ഉള്ള ഏത് JavaScript റൺടൈമിലും ഇത് പ്രവർത്തിക്കുന്നു.
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);ഓതന്റിക്കേഷൻ
പ്രദേശങ്ങളും പ്ലാനുകളും പോലുള്ള പൊതു കാറ്റലോഗ് എൻഡ്പോയിന്റുകൾക്ക് ക്രെഡൻഷ്യലുകൾ ആവശ്യമില്ല. മറ്റെല്ലാ കാര്യങ്ങളും ഒരു bearer token ആയി അയച്ച ഓർഗനൈസേഷൻ തിരിച്ചുള്ള API കീ ഉപയോഗിക്കുന്നു. ഒരു കീ സൃഷ്ടിക്കുമ്പോൾ നിങ്ങൾ നൽകുന്ന അനുമതികൾ മാത്രമേ അതിൽ ഉണ്ടാകൂ, നിങ്ങൾക്ക് അത് എപ്പോൾ വേണമെങ്കിലും റദ്ദാക്കാം. ഇത് ഒരു എൻവയോൺമെന്റ് വേരിയബിളിലോ നിങ്ങളുടെ രഹസ്യ സ്റ്റോറിലോ സൂക്ഷിക്കുക, ഒരിക്കലും സോഴ്സ് കോഡിൽ സൂക്ഷിക്കരുത്.
നിങ്ങൾക്ക് ലഭിക്കുന്നത്
മുഴുവൻ പൊതു API-യും, ടൈപ്പ് ചെയ്തത്
സൈറ്റുകൾ, ഡൊമെയ്നുകളും DNS-ഉം, ബില്ലിംഗ്, പിന്തുണ കൂടാതെ പൊതു API-യുടെ മറ്റെല്ലാ മേഖലകളും. പ്രതികരണങ്ങളും പിശകുകളും ടൈപ്പ് ചെയ്തവയാണ്, ഒപ്പം നിങ്ങളുടെ സ്വന്തം കോഡിനായി സ്കീമ തരങ്ങൾ എക്സ്പോർട്ടുചെയ്യുന്നു.
ജനറേറ്റ് ചെയ്തത്, ഒരിക്കലും കൈകൊണ്ട് എഴുതിയതല്ല
ഞങ്ങളുടെ OpenAPI സ്പെസിഫിക്കേഷനിൽ നിന്ന് സൃഷ്ടിച്ച ടൈപ്പുകൾക്ക് മുകളിലുള്ള openapi-fetch ആണ് ക്ലയന്റ്. സ്പെസിഫിക്കേഷൻ മാറുമ്പോഴെല്ലാം ഒരു പുതിയ പതിപ്പ് യാന്ത്രികമായി പ്രസിദ്ധീകരിക്കപ്പെടുന്നു, അതിനാൽ ആരും ഒരു റാപ്പർ എഴുതാതെ തന്നെ ഒരു പുതിയ എൻഡ്പോയിന്റ് SDK-യിൽ എത്തുന്നു.
ചെറുതും ആശ്രിതത്വങ്ങൾ കുറഞ്ഞതും
ഒരു റൺടൈം ഡിപൻഡൻസിയും നേറ്റീവ് fetch ഉം. ഇത് Node.js-ലും ബ്രൗസറിലും എഡ്ജ് റൺടൈമുകളിലും പ്രവർത്തിക്കുന്നു, ഒപ്പം ഇതിന് 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);ചോദ്യങ്ങൾ
നിങ്ങൾക്ക് ഒരു TypeScript അല്ലെങ്കിൽ JavaScript SDK ഉണ്ടോ?
അതെ. npm-ൽ നിന്ന് @zinn-digital/sdk ഇൻസ്റ്റാൾ ചെയ്യുക. ഞങ്ങളുടെ OpenAPI സ്പെസിഫിക്കേഷനിൽ നിന്ന് സൃഷ്ടിച്ച പൂർണ്ണമായി ടൈപ്പ് ചെയ്ത ക്ലയന്റാണിത്, ഇത് മുഴുവൻ പബ്ലിക് API-യും ഉൾക്കൊള്ളുന്നു.
ഞാൻ എങ്ങനെ പ്രാമാണീകരിക്കണം?
നിങ്ങളുടെ ഡാഷ്ബോർഡിലെ API കീകൾ പേജിൽ ഒരു API കീ സൃഷ്ടിക്കുകയും അത് Authorization ഹെഡറിൽ ഒരു ബെയറർ ടോക്കണായി അയയ്ക്കുകയും ചെയ്യുക. പൊതു കാറ്റലോഗ് എൻഡ്പോയിന്റുകൾക്ക് കീ ആവശ്യമില്ല.
SDK എങ്ങനെയാണ് കാലികമായി നിലനിർത്തുന്നത്?
API നിർമ്മിച്ചിരിക്കുന്ന അതേ OpenAPI സ്പെസിഫിക്കേഷനിൽ നിന്നാണ് ഇത് ജനറേറ്റ് ചെയ്യുന്നത്, ആ സ്പെസിഫിക്കേഷൻ മാറുമ്പോഴെല്ലാം ഒരു പുതിയ പതിപ്പ് സ്വയമേവ പ്രസിദ്ധീകരിക്കപ്പെടും.
എല്ലാ എൻഡ്പോയിന്റും പര്യവേക്ഷണം ചെയ്യുക
SDK-യ്ക്ക് വിളിക്കാൻ കഴിയുന്ന ഓരോ പ്രവർത്തനവും അതിന്റെ പാരാമീറ്ററുകൾ, പ്രതികരണങ്ങൾ, അനുമതികൾ എന്നിവയോടൊപ്പം API റഫറൻസിൽ വിവരിച്ചിരിക്കുന്നു.