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.
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/sdkSzybki 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.
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.