TypeScript SDK
จัดการโฮสติ้งของคุณได้โดยตรงจาก TypeScript
@zinn-digital/sdk เป็นไคลเอนต์ที่มีการกำหนดประเภทข้อมูลอย่างสมบูรณ์สำหรับ Zinn Digital® API ทุกพาธ พารามิเตอร์ และการตอบกลับถูกสร้างขึ้นจากข้อกำหนด OpenAPI เดียวกันกับที่ใช้สร้าง API ดังนั้นโปรแกรมแก้ไขของคุณจึงรู้จัก API ทั้งหมด และข้อผิดพลาดในการพิมพ์จะกลายเป็นข้อผิดพลาดในการคอมไพล์
ติดตั้ง
แพ็กเกจนี้อยู่บน 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 ซึ่งเป็นไคลเอนต์ที่มีการระบุประเภทไว้อย่างสมบูรณ์ที่สร้างขึ้นจากข้อกำหนด OpenAPI ของเรา และครอบคลุม API สาธารณะทั้งหมด
ฉันจะตรวจสอบสิทธิ์ได้อย่างไร
สร้างคีย์ API บนหน้าคีย์ API ของแดชบอร์ดของคุณ และส่งเป็นโทเค็น bearer ในส่วนหัว Authorization จุดสิ้นสุดของแคตตาล็อกสาธารณะไม่จำเป็นต้องใช้คีย์
SDK ได้รับการปรับปรุงให้เป็นปัจจุบันอยู่เสมออย่างไร?
สิ่งนี้สร้างขึ้นจากข้อกำหนด OpenAPI เดียวกันกับที่ใช้สร้าง API และจะมีการเผยแพร่เวอร์ชันใหม่โดยอัตโนมัติทุกครั้งที่ข้อกำหนดดังกล่าวมีการเปลี่ยนแปลง
สำรวจทุกปลายทาง
ทุกการทำงานที่ SDK สามารถเรียกใช้ได้ มีคำอธิบายอยู่ในเอกสารอ้างอิง API พร้อมด้วยพารามิเตอร์ การตอบกลับ และสิทธิ์การใช้งาน