SDK TypeScript

Zarządzaj swoim hostingiem z poziomu TypeScripta

@zinn-digital/sdk to w pełni typowany klient dla Zinn Digital® API. Każda ścieżka, parametr i odpowiedź są generowane na podstawie tej samej specyfikacji OpenAPI, w oparciu o którą zbudowano API, dzięki czemu Twój edytor zna całe API, a literówka staje się błędem kompilacji.

Cała dokumentacja dla programistów →

Zainstaluj

Pakiet jest dostępny w npm w ramach zakresu @zinn-digital. Działa w każdym środowisku uruchomieniowym JavaScript obsługującym fetch.

npm install @zinn-digital/sdk

Szybki start

Wyświetl publiczne regiony hostingu bez klucza, a następnie wyświetl własne witryny z kluczem.

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

Uwierzytelnianie

Publiczne punkty końcowe katalogu, takie jak regiony i plany, nie wymagają żadnych danych uwierzytelniających. Wszystko inne korzysta z klucza API dla danej organizacji, przesyłanego jako bearer token. Klucz ma tylko te uprawnienia, które zostały mu nadane podczas jego tworzenia, i można go unieważnić w dowolnym momencie. Należy przechowywać go w zmiennej środowiskowej lub w magazynie wpisów tajnych, nigdy w kodzie źródłowym.

Utwórz klucz API w swoim panelu

Co zyskujesz

Całe publiczne API, typowane

Witryny, domeny i DNS, rozliczenia, wsparcie oraz każdy inny obszar publicznego interfejsu API. Odpowiedzi i błędy są typowane, a typy schematów są eksportowane dla Państwa własnego kodu.

Wygenerowane, nigdy niepisane ręcznie

Klientem jest openapi-fetch oparty na typach wygenerowanych z naszej specyfikacji OpenAPI. Nowa wersja jest publikowana automatycznie przy każdej zmianie specyfikacji, dzięki czemu nowy punkt końcowy trafia do pakietu SDK bez konieczności pisania wrappera przez kogokolwiek.

Niewielki i z małą liczbą zależności

Pojedyncza zależność środowiska uruchomieniowego i natywny fetch. Działa w Node.js, w przeglądarce oraz w środowiskach uruchomieniowych edge i jest objęty licencją MIT.

Wpisane do samego dołu

Odczytaj rekordy DNS domeny i przefiltruj je według typu rekordu zdefiniowanego w specyfikacji.

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

Pytania

Czy posiadają Państwo SDK dla języka TypeScript lub JavaScript?

Tak. Zainstaluj @zinn-digital/sdk z npm. Jest to w pełni otypowany klient wygenerowany na podstawie naszej specyfikacji OpenAPI, który obejmuje całe publiczne API.

Jak się uwierzytelnić?

Utwórz klucz API na stronie Klucze API w swoim panelu i prześlij go jako token nośnika (bearer token) w nagłówku Authorization. Publiczne punkty końcowe katalogu nie wymagają klucza.

W jaki sposób SDK jest aktualizowany?

Jest generowany na podstawie tej samej specyfikacji OpenAPI, w oparciu o którą zbudowano API, a nowa wersja jest publikowana automatycznie za każdym razem, gdy ta specyfikacja ulegnie zmianie.

Przeglądaj każdy punkt końcowy

Każda operacja, którą może wywołać SDK, została opisana w dokumentacji referencyjnej API wraz z parametrami, odpowiedziami i uprawnieniami.

Dokumentacja API