TypeScript SDK
គ្រប់គ្រងការបង្ហោះគេហទំព័ររបស់អ្នកពី TypeScript
@zinn-digital/sdk គឺជាក្លាយអិនដែលមានប្រភេទពេញលេញសម្រាប់ Zinn Digital® API។ គ្រប់ផ្លូវ ប៉ារ៉ាម៉ែត្រ និងការឆ្លើយតបទាំងអស់ត្រូវបានបង្កើតចេញពីការបញ្ជាក់លម្អិត OpenAPI ដូចគ្នាដែល API ត្រូវបានបង្កើតឡើង ដូច្នេះកម្មវិធីកែសម្រួលរបស់អ្នកស្គាល់ API ទាំងមូល ហើយកំហុសវាយអក្សរគឺជាកំហុសចងក្រង (compile error)។
ដំឡើង
កញ្ចប់នេះមាននៅលើ npm ក្រោមវិសាលភាព @zinn-digital។ វាដំណើរការនៅក្នុងបរិស្ថានដំណើរការ JavaScript ណាមួយដែលមាន fetch។
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 សម្រាប់ស្ថាប័ននីមួយៗដែលផ្ញើជា bearer token។ សោមួយមានតែការអនុញ្ញាតដែលអ្នកផ្តល់ឱ្យវានៅពេលអ្នកបង្កើតវាប៉ុណ្ណោះ ហើយអ្នកអាចដកហូតវាវិញបានគ្រប់ពេល។ សូមរក្សាទុកវាក្នុងអថេរបរិស្ថាន ឬកន្លែងផ្ទុកការសម្ងាត់របស់អ្នក ដោយកុំរក្សាទុកក្នុងកូដប្រភពឱ្យសោះ។
អ្វីដែលអ្នកទទួលបាន
API សាធារណៈទាំងមូល ដែលមានកំណត់ប្រភេទ
គេហទំព័រ ដែន និង DNS ការចេញវិក្កយបត្រ ការគាំទ្រ និងគ្រប់ផ្នែកផ្សេងទៀតនៃ API សាធារណៈ។ ការឆ្លើយតប និងកំហុសត្រូវបានកំណត់ប្រភេទ ហើយប្រភេទគ្រោងការណ៍ត្រូវបាននាំចេញសម្រាប់កូដផ្ទាល់ខ្លួនរបស់អ្នក។
បានបង្កើត មិនដែលសរសេរដោយដៃ
ក្លាយអិនគឺជា openapi-fetch លើប្រភេទដែលបានបង្កើតចេញពីការបញ្ជាក់លម្អិត OpenAPI របស់យើង។ កំណែថ្មីមួយត្រូវបានបោះពុម្ពផ្សាយដោយស្វ័យប្រវត្តិនៅពេលណាដែលការបញ្ជាក់លម្អិតផ្លាស់ប្តូរ ដូច្នេះចំណុចចុងក្រោយថ្មីមួយនឹងទៅដល់ SDK ដោយគ្មាននរណាម្នាក់ត្រូវសរសេរ wrapper ឡើយ។
តូច និងមានការពឹងផ្អែកតិចតួច
ការពឹងផ្អែកពេលដំណើរការតែមួយ និង fetch ដើម។ វាដំណើរការនៅក្នុង Node.js ក្នុងកម្មវិធីរុករក និងក្នុងបរិស្ថាន edge ហើយមានអាជ្ញាប័ណ្ណ 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 ដែរឬទេ?
បាទ/ចាស។ ដំឡើង @zinn-digital/sdk ពី npm។ វាជា client ដែលមានប្រភេទពេញលេញដែលបង្កើតចេញពីការបញ្ជាក់ OpenAPI របស់យើង ហើយវាគ្របដណ្តប់លើ API សាធារណៈទាំងមូល។
តើខ្ញុំផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវដោយរបៀបណា?
បង្កើតកូនសោ API នៅលើទំព័រកូនសោ API នៃផ្ទាំងគ្រប់គ្រងរបស់អ្នក ហើយផ្ញើវាជា bearer token នៅក្នុងក្បាល Authorization។ ចំណុចបញ្ចប់កាតាឡុកសាធារណៈមិនត្រូវការកូនសោទេ។
តើ SDK ត្រូវបានរក្សាទុកឱ្យទាន់សម័យដោយរបៀបណា?
វាត្រូវបានបង្កើតចេញពីការបញ្ជាក់លម្អិត OpenAPI ដូចគ្នាដែល API ត្រូវបានបង្កើតឡើង ហើយកំណែថ្មីមួយត្រូវបានបោះពុម្ពផ្សាយដោយស្វ័យប្រវត្តិនៅពេលណាដែលការបញ្ជាក់លម្អិតនោះផ្លាស់ប្តូរ។
រុករកគ្រប់ចំណុចចុងក្រោយ
រាល់ប្រតិបត្តិការដែល SDK អាចហៅបាន គឺត្រូវបានពិពណ៌នានៅក្នុងឯកសារយោង API រួមជាមួយប៉ារ៉ាម៉ែត្រ ការឆ្លើយតប និងការអនុញ្ញាតរបស់វា។