База знаний

Использование TypeScript SDK (@zinn-digital/sdk)

Установите @zinn-digital/sdk из npm, создайте ключ API и выполните первые типизированные вызовы к API Zinn Digital® из TypeScript — общедоступные регионы без ключа, затем ваши собственные сайты — а также экспортированные типы схем и формат возврата ошибок.

@zinn-digital/sdk — это наш официальный клиент TypeScript для API Zinn Digital®, опубликованный в npm. Каждый путь, параметр и ответ в нем создаются на основе той же спецификации OpenAPI, на которой построен API, и новая версия публикуется автоматически при каждом изменении этой спецификации. В этом руководстве рассматривается его установка, аутентификация и выполнение ваших первых вызовов.

Установка

npm install @zinn-digital/sdk

Это работает в любой среде выполнения JavaScript с поддержкой fetch: Node.js, браузере и средах edge. У него есть одна зависимость времени выполнения — openapi-fetch, и оно лицензировано по лицензии MIT.

Создание ключа API

Откройте страницу Ключи API на панели управления (app.zinndigital.com/api-keys) и нажмите Создать ключ. Укажите имя ключа и только те разрешения, которые требуются вашему коду, например sites.view для вывода списка сайтов. Ключ отображается только один раз; сохраните его в переменной окружения или в хранилище секретов, ни в коем случае не в исходном коде. Вы можете отозвать ключ в любое время на этой же странице.

Общедоступные эндпоинты каталога, такие как регионы размещения и тарифные планы, вообще не требуют ключа.

ваши первые вызовы

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

Запустите с помощью ZINN_API_KEY=zdk_live_… npx tsx first-calls.ts. В первой строке выводятся регионы хостинга, затем по одной строке для каждого сайта.

Типы для вашего собственного кода

Типы схем экспортируются, поэтому ваши собственные функции могут использовать структуры API:

import type { components } from "@zinn-digital/sdk";

type Site = components["schemas"]["Site"];
type DnsRecord = components["schemas"]["DnsRecord"];

Неправильно написанный путь, параметр или поле приводит к ошибке компиляции, а не к запросу, который молча выполняет не то действие.

Ошибки

Каждый вызов возвращает { data, error, response }. При ответе, отличном от 2xx, data не определено (undefined), а error представляет собой оболочку ошибки API: error.error.code, понятное человеку сообщение error.error.message и, в случае сбоев валидации, error.error.details с указанием каждого поля. Код 403 означает, что ключ не имеет разрешения, требуемого конечной точкой — создайте ключ с этим разрешением вместо повторного использования ключа с более широкими правами.

Что дальше

  • Руководство на нашем сайте: zinndigital.com/developers/sdk-typescript
  • Каждая конечная точка, ее параметры и разрешение: zinndigital.com/developers/api
  • Пакет на npm: npmjs.com/package/@zinn-digital/sdk

Вся документация для разработчиков →

Новое в блоге

О чем мы писали: хостинг, SEO и масштабирование сайтов.

SEO и наращивание ссылочной массы на уровне хостинга: Взгляд оператора в 2026 году

Как хостинг влияет на индексацию и ссылочный вес в 2026 году: поддержание страниц в индексе, проверка старых доменов перед запуском проектов, построение ссылок без цифрового следа (футпринта) и честный взгляд на то, что инфраструктура может и чего не может сделать для SEO.

Читать запись →

Как сделать WordPress быстрым и безопасным: чек-лист по производительности и плагинам

Практический контрольный список для быстрого и безопасного WordPress: кэширование на уровне сервера, объектный кэш для каждого сайта, несколько действительно полезных плагинов, поддержание стека в актуальном состоянии и страницы WooCommerce, которые ни в коем случае нельзя кэшировать.

Читать запись →

Как выбрать управляемый веб-хостинг в 2026 году: руководство для покупателя

Что на самом деле отличает хороший управляемый хостинг от дешевого сервера с панелью управления — миграции, резервное копирование, изоляция, реальное кэширование и честное масштабирование — и как оценить его до принятия обязательств.

Читать запись →

Читать блог →

Всё ещё нужна помощь?

Поддержка включена в каждый тарифный план, служба работает 24 часов в сутки, и вы можете писать нам на любом из наших 58 языков — мы ответим вам на вашем.

Связаться со службой поддержки → Все статьи →