Cơ sở tri thức

Sử dụng TypeScript SDK (@zinn-digital/sdk)

Cài đặt @zinn-digital/sdk từ npm, tạo khóa API và thực hiện các lệnh gọi có định kiểu đầu tiên của bạn tới Zinn Digital® API từ TypeScript — các khu vực công khai không cần khóa, sau đó là các trang web của riêng bạn — cùng với các loại lược đồ được xuất và cách lỗi được trả về.

@zinn-digital/sdk là ứng dụng khách TypeScript chính thức của chúng tôi dành cho Zinn Digital® API, được xuất bản trên npm. Mọi đường dẫn, tham số và phản hồi trong đó đều được tạo từ cùng một đặc tả OpenAPI mà API được xây dựng từ đó, đồng thời phiên bản mới sẽ được xuất bản tự động bất cứ khi nào đặc tả đó thay đổi. Hướng dẫn này sẽ cài đặt, xác thực và thực hiện các lệnh gọi đầu tiên của quý vị.

Cài đặt

npm install @zinn-digital/sdk

Thư viện này hoạt động trong mọi môi trường thực thi JavaScript có hỗ trợ fetch: Node.js, trình duyệt và các môi trường edge. Thư viện chỉ có một phần phụ thuộc lúc thực thi là openapi-fetch và được cấp phép theo MIT.

Tạo khóa API

Mở trang Khóa API trên bảng điều khiển của quý vị (app.zinndigital.com/api-keys) và nhấn Tạo khóa. Đặt tên cho khóa và chỉ cấp các quyền mà mã của quý vị cần — ví dụ: sites.view để liệt kê các trang web. Khóa chỉ được hiển thị một lần; hãy lưu trữ khóa trong biến môi trường hoặc kho lưu trữ bí mật của quý vị, tuyệt đối không để trong mã nguồn. Quý vị có thể thu hồi khóa bất kỳ lúc nào trên cùng trang này.

Các điểm cuối danh mục công khai, chẳng hạn như khu vực lưu trữ và các gói dịch vụ, hoàn toàn không cần khóa.

Các lệnh gọi đầu tiên của quý vị

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);

Chạy lệnh này bằng ZINN_API_KEY=zdk_live_… npx tsx first-calls.ts. Dòng đầu tiên in ra các khu vực lưu trữ, sau đó là mỗi trang web một dòng.

Các kiểu cho mã nguồn của riêng bạn

Các kiểu lược đồ đã được xuất, vì vậy các hàm của riêng bạn có thể sử dụng các cấu trúc của API:

import type { components } from "@zinn-digital/sdk";

type Site = components["schemas"]["Site"];
type DnsRecord = components["schemas"]["DnsRecord"];

Đường dẫn, tham số hoặc trường viết sai chính tả sẽ là lỗi biên dịch thay vì một yêu cầu âm thầm thực hiện sai thao tác.

Lỗi

Mỗi lệnh gọi đều trả về { data, error, response }. Đối với phản hồi không thuộc dải 2xx, data là không xác định và error là vỏ bọc lỗi của API: error.error.code, error.error.message mà con người có thể đọc được và đối với các trường hợp xác thực không thành công là error.error.details nêu rõ tên từng trường. Mã 403 có nghĩa là khóa không mang quyền mà điểm cuối yêu cầu — hãy tạo một khóa có quyền đó thay vì dùng lại khóa có nhiều quyền hơn.

Nơi chuyển tiếp tiếp theo

  • Hướng dẫn trên trang web của chúng tôi: zinndigital.com/developers/sdk-typescript
  • Mọi điểm cuối, các tham số và quyền của điểm cuối đó: zinndigital.com/developers/api
  • Gói trên npm: npmjs.com/package/@zinn-digital/sdk

Tất cả tài liệu dành cho nhà phát triển →

Mới nhất từ blog

Những gì chúng tôi đã viết về lưu trữ web, SEO và vận hành trang web ở quy mô lớn.

SEO và xây dựng liên kết từ tầng lưu trữ: Góc nhìn của nhà vận hành năm 2026

Cách dịch vụ lưu trữ định hình việc lập chỉ mục và giá trị liên kết (link equity) vào năm 2026: giữ cho các trang luôn được lập chỉ mục, kiểm tra kỹ lưỡng các tên miền cũ trước khi xây dựng, xây dựng liên kết mà không để lại dấu vết (footprint), và một cái nhìn thẳng thắn về những gì cơ sở hạ tầng có thể và không thể làm cho SEO.

Đọc bài viết →

Giúp WordPress nhanh chóng và an toàn: Danh sách kiểm tra hiệu suất và plugin

Danh sách kiểm tra thực tế cho một trang WordPress nhanh và an toàn: lưu vào bộ nhớ đệm ở cấp độ máy chủ, bộ nhớ đệm đối tượng cho từng trang web, số ít plugin đáng sử dụng, duy trì ngăn xếp công nghệ luôn mới nhất và các trang WooCommerce mà quý vị tuyệt đối không bao giờ được lưu vào bộ nhớ đệm.

Đọc bài viết →

Cách chọn dịch vụ lưu trữ web được quản lý vào năm 2026: Hướng dẫn cho người mua

Điều thực sự tạo nên sự khác biệt giữa dịch vụ lưu trữ được quản lý tốt và một máy chủ giá rẻ có bảng điều khiển — di chuyển dữ liệu, sao lưu, cách ly, bộ nhớ đệm thực sự và khả năng mở rộng trung thực — và cách đánh giá dịch vụ đó trước khi bạn cam kết.

Đọc bài viết →

Đọc blog →

Vẫn gặp khó khăn?

Hỗ trợ được bao gồm trong mọi gói, bộ phận chăm sóc khách hàng hoạt động 24 giờ một ngày và quý khách có thể viết thư cho chúng tôi bằng bất kỳ ngôn ngữ nào trong số 58 ngôn ngữ của chúng tôi — chúng tôi sẽ trả lời quý khách bằng ngôn ngữ của quý khách.

Liên hệ hỗ trợ → Tất cả bài viết →