TypeScript-SDK
Beheer uw hosting vanuit TypeScript
@zinn-digital/sdk is een volledig getypte client voor de Zinn Digital®-API. Elk pad, elke parameter en elke respons wordt gegenereerd op basis van dezelfde OpenAPI-specificatie waarop de API is gebouwd, zodat uw editor de hele API kent en een typfout een compilatiefout oplevert.
Installeren
Het pakket is beschikbaar op npm onder de scope @zinn-digital. Het werkt in elke JavaScript-runtimeomgeving die beschikt over fetch.
npm install @zinn-digital/sdkSnelle start
Geef de openbare hostingregio's weer zonder sleutel en geef vervolgens uw eigen sites weer met een sleutel.
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);Authenticatie
Openbare cataloguseindpunten, zoals regio's en abonnementen, vereisen geen inloggegevens. Al het overige maakt gebruik van een API-sleutel per organisatie die als bearer token wordt verzonden. Een sleutel bevat alleen de machtigingen die u verleent wanneer u deze aanmaakt, en u kunt deze op elk gewenst moment intrekken. Bewaar deze in een omgevingsvariabele of in uw geheime opslag, nooit in de broncode.
Wat u krijgt
De gehele openbare API, getypeerd
Sites, domeinen en DNS, facturering, ondersteuning en elk ander gebied van de openbare API. Responses en fouten zijn getypeerd, en de schematypen worden geëxporteerd voor uw eigen code.
Gegenereerd, nooit handgeschreven
De client is openapi-fetch over typen die zijn gegenereerd op basis van onze OpenAPI-specificatie. Er wordt automatisch een nieuwe versie gepubliceerd wanneer de specificatie verandert, zodat een nieuw eindpunt de SDK bereikt zonder dat iemand een wrapper hoeft te schrijven.
Klein en met weinig afhankelijkheden
Eén runtime-afhankelijkheid en ingebouwde fetch. Het draait in Node.js, in de browser en in edge-runtimes, en heeft een MIT-licentie.
Helemaal naar beneden getypt
Lees de DNS-records van een domein en filter deze op het recordtype dat in de specificatie is gedefinieerd.
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);Vragen
Beschikt u over een TypeScript- of JavaScript-SDK?
Ja. Installeer @zinn-digital/sdk via npm. Het is een volledig getypeerde client die is gegenereerd op basis van onze OpenAPI-specificatie en die de hele openbare API dekt.
Hoe kan ik me authenticeren?
Maak een API-sleutel aan op de pagina API-sleutels van uw dashboard en verzend deze als bearer-token in de header Authorization. Openbare catalogus-eindpunten hebben geen sleutel nodig.
Hoe wordt de SDK up-to-date gehouden?
Het wordt gegenereerd op basis van dezelfde OpenAPI-specificatie als waarop de API is gebouwd, en er wordt automatisch een nieuwe versie gepubliceerd wanneer die specificatie verandert.
Verken elk eindpunt
Elke bewerking die de SDK kan aanroepen, wordt beschreven in de API-referentie, met de bijbehorende parameters, antwoorden en machtigingen.