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 ключ за всяка организация, изпращан като токен на приносител. Ключът носи само разрешенията, които му предоставяте при създаването му, и можете да го отмените по всяко време. Съхранявайте го в променлива на средата или във вашето хранилище за тайни, никога в изходния код.

Създайте API ключ във вашето табло за управление

Какво получавате

Целият публичен API, типизиран

Сайтове, домейни и DNS, таксуване, поддръжка и всяка друга област на публичния API. Отговорите и грешките са типизирани, а типовете на схемата са експортирани за вашия собствен код.

Генерирано, никога писано на ръка

Клиентът е openapi-fetch върху типове, генерирани от нашата OpenAPI спецификация. Нова версия се публикува автоматично при всяка промяна на спецификацията, така че новата крайна точка достига до SDK, без да е необходимо някой да пише обвивка.

Малък и с малко зависимости

Една зависимост по време на изпълнение и вграден fetch. Работи в Node.js, в браузъра и в крайни среди за изпълнение, и е с лиценз 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