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 без потреби писати обгортку.

Невеликий і з малою кількістю залежностей

Одна залежність часу виконання та нативний 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);

Запитання

Чи є у вас SDK для TypeScript або JavaScript?

Так. Встановіть @zinn-digital/sdk з npm. Це повністю типізований клієнт, згенерований на основі нашої специфікації OpenAPI, і він охоплює весь публічний API.

Як пройти автентифікацію?

Створіть ключ API на сторінці Ключі API на панелі керування та надішліть його як токен bearer у заголовку Authorization. Загальнодоступні кінцеві точки каталогу не потребують ключа.

Як SDK підтримується в актуальному стані?

Він створюється на основі тієї самої специфікації OpenAPI, за якою побудовано API, і нова версія публікується автоматично щоразу, коли ця специфікація змінюється.

Дослідити кожну кінцеву точку

Кожна операція, яку може викликати SDK, описана в довіднику API разом із її параметрами, відповідями та дозволами.

Довідник з API