SDK de TypeScript
Gestione su alojamiento desde TypeScript
@zinn-digital/sdk es un cliente con tipado estricto para la API de Zinn Digital®. Cada ruta, parámetro y respuesta se genera a partir de la misma especificación OpenAPI sobre la que está construida la API, por lo que su editor conoce la API completa y una errata es un error de compilación.
Instalar
El paquete está disponible en npm bajo el ámbito @zinn-digital. Funciona en cualquier entorno de ejecución de JavaScript que disponga de fetch.
npm install @zinn-digital/sdkInicio rápido
Enumere las regiones de alojamiento públicas sin una clave y, a continuación, enumere sus propios sitios con una.
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);Autenticación
Los extremos públicos del catálogo, como regiones y planes, no necesitan credenciales. Todo lo demás utiliza una clave de API por organización enviada como token de portador. Una clave solo tiene los permisos que usted le concede al crearla, y puede revocarla en cualquier momento. Guárdela en una variable de entorno o en su almacén de secretos, nunca en el código fuente.
Lo que obtiene
Toda la API pública, tipada
Sitios, dominios y DNS, facturación, soporte y todas las demás áreas de la API pública. Las respuestas y los errores están tipados, y los tipos de esquema se exportan para su propio código.
Generado, nunca escrito a mano
El cliente es openapi-fetch sobre tipos generados a partir de nuestra especificación OpenAPI. Se publica automáticamente una nueva versión cada vez que cambia la especificación, por lo que un nuevo punto de conexión llega al SDK sin que nadie tenga que escribir un contenedor.
Pequeño y con pocas dependencias
Una sola dependencia en tiempo de ejecución y fetch nativo. Se ejecuta en Node.js, en el navegador y en entornos de ejecución edge, y cuenta con licencia MIT.
Escrito hasta el final
Lea los registros DNS de un dominio y fílPointrelos según el tipo de registro que define la especificación.
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);Preguntas
¿Dispone de un SDK de TypeScript o JavaScript?
Sí. Instale @zinn-digital/sdk desde npm. Es un cliente totalmente tipado generado a partir de nuestra especificación OpenAPI y cubre toda la API pública.
¿Cómo me autentico?
Cree una clave de API en la página Claves de API de su panel de control y envíela como token de portador en el encabezado Authorization. Los extremos de catálogo público no necesitan clave.
¿Cómo se mantiene actualizado el SDK?
Se genera a partir de la misma especificación OpenAPI sobre la que está construida la API, y se publica una nueva versión automáticamente cada vez que esa especificación cambia.
Explorar cada extremo
Cada operación que el SDK puede llamar se describe en la referencia de la API, con sus parámetros, respuestas y permisos.