@zinn-digital/sdk Zinn Digital® API ਲਈ ਸਾਡਾ ਅਧਿਕਾਰਤ TypeScript ਕਲਾਇੰਟ ਹੈ, ਜੋ npm 'ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਵਿੱਚ ਹਰੇਕ ਮਾਰਗ, ਪੈਰਾਮੀਟਰ ਅਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਉਸੇ OpenAPI ਨਿਰਧਾਰਨ ਤੋਂ ਤਿਆਰ ਕੀਤੀ ਗਈ ਹੈ ਜਿਸ ਤੋਂ API ਬਣਾਇਆ ਗਿਆ ਹੈ, ਅਤੇ ਜਦੋਂ ਵੀ ਉਹ ਨਿਰਧਾਰਨ ਬਦਲਦਾ ਹੈ ਤਾਂ ਇੱਕ ਨਵਾਂ ਸੰਸਕਰਣ ਆਪਣੇ ਆਪ ਪ੍ਰਕਾਸ਼ਿਤ ਹੋ ਜਾਂਦਾ ਹੈ। ਇਹ ਗਾਈਡ ਇਸਨੂੰ ਸਥਾਪਿਤ ਕਰਦੀ ਹੈ, ਇਸਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੀਆਂ ਪਹਿਲੀਆਂ ਕਾਲਾਂ ਕਰਦੀ ਹੈ।
ਇੰਸਟਾਲ ਕਰੋ
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 ਅਪਰਿਭਾਸ਼ਿਤ ਹੁੰਦਾ ਹੈ ਅਤੇ 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