Обзор

Типизированные клиентские библиотеки для Pachca API — автоматически сгенерированы из OpenAPI-спецификации. Автодополнение, актуальные модели данных, встроенный retry и обработка ошибок. Исходный код на GitHub.

Пример

Получение профиля
import { PachcaClient } from "@pachca/sdk" const client = new PachcaClient("YOUR_TOKEN") const response = client.profile.getProfile()// → User({ id: number, firstName: string, lastName: string, nickname: string, email: string, phoneNumber: string, department: string, title: string, role: UserRole, suspended: boolean, inviteStatus: InviteStatus, listTags: string[], customProperties: CustomProperty({ id: number, name: string, dataType: CustomPropertyDataType, value: string })[], userStatus: UserStatus({ emoji: string, title: string, expiresAt: string | null, isAway: boolean, awayMessage: UserStatusAwayMessage({ text: string }) | null }) | null, bot: boolean, sso: boolean, createdAt: string, lastActivityAt: string, timeZone: string, imageUrl: string | null })

Возможности

ВозможностьОписание
16 сервисовТипизированные методы для каждого API-эндпоинта
АвтопагинацияМетоды *All() для автоматического обхода всех страниц
Повторные запросыАвтоматический retry при 429 с экспоненциальным backoff
Обработка ошибокТипизированные ApiError и OAuthError
СериализацияАвтоматическая конвертация между форматами (snake_case ↔ camelCase)
АвторизацияBearer-токен передаётся один раз при создании клиента

Сравнение

TypeScriptPythonGoKotlinSwift
Пакет@pachca/sdkpachca-sdkgo get ...com.pachca:pachca-sdkPachcaSDK
МенеджерnpmPyPIGo modulesJitPack (Gradle)SPM
Asyncawaitawait (asyncio)синхронныйsuspend (coroutines)try await
HTTPfetchhttpxnet/httpKtorURLSession
NamingcamelCasesnake_casePascalCasecamelCasecamelCase
Cleanupawait client.close()client.close()
ТребованияNode.js 18+Python 3.10+Go 1.24+Kotlin 2.2+, Java 11+Swift 5.9+, macOS 13+, iOS 16+