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 ในแดชบอร์ดของคุณ

สิ่งที่คุณจะได้รับ

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 พร้อมด้วยพารามิเตอร์ การตอบกลับ และสิทธิ์การใช้งาน

เอกสารอ้างอิง API