TypeScript SDK
TypeScript থেকে আপনার হোস্টিং পরিচালনা করুন
@zinn-digital/sdk হলো Zinn Digital® API-এর জন্য একটি সম্পূর্ণ টাইপ করা ক্লায়েন্ট। প্রতিটি পাথ, প্যারামিটার এবং প্রতিক্রিয়া একই OpenAPI স্পেসিফিকেশন থেকে তৈরি করা হয়েছে যা থেকে API তৈরি করা হয়েছে, তাই আপনার সম্পাদক সম্পূর্ণ 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);প্রমাণীকরণ
অঞ্চল এবং পরিকল্পনার মতো পাবলিক ক্যাটালগ এন্ডপয়েন্টগুলির জন্য কোনও শংসাপত্রের প্রয়োজন নেই। অন্য সব কিছুর জন্য একটি বাহক টোকেন হিসাবে পাঠানো সংস্থা-ভিত্তিক 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 কীভাবে আপ-টু-ডেট রাখা হয়?
এটি একই OpenAPI স্পেসিফিকেশন থেকে তৈরি যা থেকে API তৈরি করা হয়েছে, এবং যখনই সেই স্পেসিফিকেশন পরিবর্তিত হয় তখনই একটি নতুন সংস্করণ স্বয়ংক্রিয়ভাবে প্রকাশিত হয়।
প্রতিটি এন্ডপয়েন্ট অন্বেষণ করুন
SDK কল করতে পারে এমন প্রতিটি অপারেশন তার প্যারামিটার, প্রতিক্রিয়া এবং অনুমতিসহ API রেফারেন্সে বর্ণিত হয়েছে।