TypeScript-SDK

Steuern Sie Ihr Hosting über TypeScript

@zinn-digital/sdk ist ein vollständig typisierter Client für die Zinn Digital®-API. Jeder Pfad, jeder Parameter und jede Antwort wird aus derselben OpenAPI-Spezifikation generiert, auf der auch die API basiert, sodass Ihr Editor die gesamte API kennt und ein Tippfehler ein Kompilierungsfehler ist.

Alle Entwicklerdokumentationen →

Installieren

Das Paket ist auf npm unter dem Scope @zinn-digital verfügbar. Es funktioniert in jeder JavaScript-Laufzeitumgebung, die fetch unterstützt.

npm install @zinn-digital/sdk

Schnellstart

Listen Sie die öffentlichen Hosting-Regionen ohne Schlüssel auf und listen Sie anschließend Ihre eigenen Websites mit einem Schlüssel auf.

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

Authentifizierung

Öffentliche Katalog-Endpunkte wie Regionen und Tarife erfordern keine Anmeldedaten. Alles andere verwendet einen organisationsbezogenen API-Schlüssel, der als Bearer-Token gesendet wird. Ein Schlüssel besitzt nur die Berechtigungen, die Sie ihm beim Erstellen erteilen, und Sie können ihn jederzeit widerrufen. Bewahren Sie ihn in einer Umgebungsvariable oder Ihrem Secret-Store auf, niemals im Quellcode.

Erstellen Sie einen API-Schlüssel in Ihrem Dashboard

Was Sie erhalten

Die gesamte öffentliche API, typisiert

Websites, Domains und DNS, Abrechnung, Support und alle weiteren Bereiche der öffentlichen API. Antworten und Fehler sind typisiert, und die Schematypen werden für Ihren eigenen Code exportiert.

Generiert, nie handgeschrieben

Der Client ist openapi-fetch über Typen, die aus unserer OpenAPI-Spezifikation generiert wurden. Eine neue Version wird automatisch veröffentlicht, sobald sich die Spezifikation ändert, sodass ein neuer Endpunkt das SDK erreicht, ohne dass jemand einen Wrapper schreiben muss.

Klein und mit wenigen Abhängigkeiten

Eine Laufzeitabhängigkeit und natives fetch. Es läuft in Node.js, im Browser sowie in Edge-Laufzeitumgebungen und ist MIT-lizenziert.

Bis ganz nach unten getippt

Lesen Sie die DNS-Einträge einer Domain aus und filtern Sie diese nach dem in der Spezifikation definierten Eintragstyp.

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

Fragen

Haben Sie ein TypeScript- oder JavaScript-SDK?

Ja. Installieren Sie @zinn-digital/sdk über npm. Es handelt sich um einen vollständig typisierten Client, der aus unserer OpenAPI-Spezifikation generiert wurde und die gesamte öffentliche API abdeckt.

Wie authentifiziere ich mich?

Erstellen Sie einen API-Schlüssel auf der Seite „API-Schlüssel“ Ihres Dashboards und senden Sie ihn als Bearer-Token im Header „Authorization“. Öffentliche Katalog-Endpunkte erfordern keinen Schlüssel.

Wie wird das SDK auf dem neuesten Stand gehalten?

Es wird aus derselben OpenAPI-Spezifikation generiert, auf der auch die API basiert, und jedes Mal, wenn sich diese Spezifikation ändert, wird automatisch eine neue Version veröffentlicht.

Jeden Endpunkt erkunden

Jede Operation, die das SDK aufrufen kann, ist in der API-Referenz mit ihren Parametern, Antworten und Berechtigungen beschrieben.

API-Referenz