Авто-генерируемые клиенты для нашего REST API. 296 эндпоинтов, типы для каждого запроса и ответа, JWT-аутентификация, multi-tenant из коробки. Подключайтесь к ЗалПлан из любого Node-сервиса или Python-скрипта без HTTP-бойлерплейта.
Работает в Node 18+ и в браузере. Полная типизация для каждого эндпоинта. Использует нативный fetch.
Python 3.10+. Модели на Pydantic 2, HTTP через urllib3, готово для асинхронных задач Celery.
Машиночитаемая спецификация — генерируйте клиента для Go, Rust, Java, PHP через openapi-generator.
npm install @zalplan/sdk pip install zalplan import {
Configuration,
AuthApi,
LocationsApi,
BookingsApi,
} from "@zalplan/sdk";
// 1. Войти и получить JWT
const auth = new AuthApi(
new Configuration({ basePath: "https://zalplan.ru/api/v1" }),
);
const { access_token } = await auth.loginAuthLoginPost({
loginRequest: { email: "you@example.com", password: "..." },
});
// 2. Передать токен в Configuration и пользоваться
const config = new Configuration({
basePath: "https://zalplan.ru/api/v1",
accessToken: access_token,
});
const locations = await new LocationsApi(config).listLocationsV1LocationsGet();
console.log(`${locations.data.length} площадок`);
const bookings = await new BookingsApi(config).listBookingsV1BookingsGet();
console.log(`${bookings.data.length} бронирований`); import zalplan
from zalplan.api.auth_api import AuthApi
from zalplan.api.locations_api import LocationsApi
from zalplan.api.bookings_api import BookingsApi
from zalplan.models.login_request import LoginRequest
config = zalplan.Configuration(host="https://zalplan.ru/api/v1")
# 1. Войти и получить JWT
with zalplan.ApiClient(config) as client:
token = AuthApi(client).login_auth_login_post(
LoginRequest(email="you@example.com", password="..."),
).access_token
# 2. Передать токен в Configuration и пользоваться
config.access_token = token
with zalplan.ApiClient(config) as client:
locations = LocationsApi(client).list_locations_v1_locations_get()
print(f"{len(locations.data)} площадок")
bookings = BookingsApi(client).list_bookings_v1_bookings_get()
print(f"{len(bookings.data)} бронирований") interface на каждый запрос и ответ. Python — Pydantic 2 модели с валидацией.access_token через Configuration — клиент сам подставит Authorization: Bearer … в каждый запрос.Idempotency-Key для всех мутаций — повторный запрос с тем же ключом вернёт тот же результат.account_id, всё дальше ваше.Интерактивная документация — попробуйте каждый эндпоинт прямо из браузера.
Чистая ссылка-документация. Удобно листать ресурсы.
Спецификация OpenAPI 3.1. Генератор для любого языка.
SDK живут в монорепозитории под sdks/typescript/ и
sdks/python/. После обновления бэкенда мы регенерируем их
одной командой из live-спецификации:
cd sdks && make sdks # docker pull openapitools/openapi-generator-cli:v7.10.0
# → typescript/src/ + python/zalplan/
Скрипт сохраняет рукописные overlay-файлы (package.json,
tsconfig.json, pyproject.toml, README),
снапшотит спеку в openapi-snapshot.json, и патчит дубли
экспортов, которые возникают, когда один эндпоинт промечен несколькими
OpenAPI-тегами.
# 1. Получить токен
curl -X POST https://zalplan.ru/api/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com","password":"..."}'
# → {"access_token":"eyJ...","token_type":"bearer"}
# 2. Использовать токен
TOKEN="eyJ..."
curl -H "Authorization: Bearer $TOKEN" https://zalplan.ru/api/v1/locations