SDK TypeScript

Gérez votre hébergement depuis TypeScript

@zinn-digital/sdk est un client entièrement typé pour l'API Zinn Digital®. Chaque chemin, paramètre et réponse est généré à partir de la même spécification OpenAPI que celle utilisée pour créer l'API, de sorte que votre éditeur connaît l'ensemble de l'API et qu'une faute de frappe constitue une erreur de compilation.

Toute la documentation pour les développeurs →

Installer

Le paquet est disponible sur npm sous le périmètre @zinn-digital. Il fonctionne dans tout environnement d'exécution JavaScript disposant de fetch.

npm install @zinn-digital/sdk

Démarrage rapide

Listez les régions d'hébergement publiques sans clé, puis listez vos propres sites avec une clé.

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

Authentification

Les points de terminaison de catalogue publics, tels que les régions et les forfaits, ne nécessitent aucun identifiant. Tout le reste utilise une clé d'API par organisation envoyée sous forme de jeton porteur. Une clé ne dispose que des autorisations que vous lui accordez lors de sa création, et vous pouvez la révoquer à tout moment. Conservez-la dans une variable d'environnement ou dans votre magasin de secrets, jamais dans le code source.

Créez une clé d'API dans votre tableau de bord

Ce que vous obtenez

L'ensemble de l'API publique, typée

Sites, domaines et DNS, facturation, assistance et tous les autres domaines de l'API publique. Les réponses et les erreurs sont typées, et les types de schéma sont exportés pour votre propre code.

Généré, jamais écrit à la main

Le client est openapi-fetch sur des types générés à partir de notre spécification OpenAPI. Une nouvelle version est publiée automatiquement chaque fois que la spécification change, de sorte qu'un nouveau point de terminaison atteint le SDK sans que quiconque ait besoin d'écrire un wrapper.

Léger et avec peu de dépendances

Une seule dépendance d'exécution et un fetch natif. Il fonctionne dans Node.js, dans le navigateur et dans les environnements d'exécution edge, et il est sous licence MIT.

Saisi jusqu'en bas

Lisez les enregistrements DNS d'un domaine et filtrez-les selon le type d'enregistrement défini par la spécification.

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

Questions

Disposez-vous d'un SDK TypeScript ou JavaScript ?

Oui. Installez @zinn-digital/sdk depuis npm. Il s'agit d'un client entièrement typé généré à partir de notre spécification OpenAPI, et il couvre l'ensemble de l'API publique.

Comment m'authentifier ?

Créez une clé d'API sur la page Clés d'API de votre tableau de bord et envoyez-la en tant que jeton porteur dans l'en-tête Authorization. Les points de terminaison du catalogue public ne nécessitent aucune clé.

Comment le SDK est-il maintenu à jour ?

Il est généré à partir de la même spécification OpenAPI que celle utilisée pour concevoir l'API, et une nouvelle version est publiée automatiquement dès que cette spécification est modifiée.

Explorer chaque point de terminaison

Chaque opération que le SDK peut appeler est décrite dans la référence de l'API, avec ses paramètres, réponses et autorisations.

Référence de l'API