SDK — обзор
Go, Python, TypeScript. Один протокол, типизированные клиенты, конкурентные конструкции.
SDK
Все официальные SDK генерируются из одного OpenAPI-описания. Типы синхронны, эндпоинты идентичны, поведение ретраев / идемпотентности — общее.
| Язык | Пакет | Версии Go/Py/Node |
|---|---|---|
| Go | github.com/h3llo/h3-go | 1.22+ |
| Python | h3llo (pypi) | 3.10+ |
| TypeScript | @h3llo/sdk (npm) | Node 20+, ESM |
Принципы
- Контекст обязателен. Все методы принимают
context.Context/AbortSignal/ async-context. - Идемпотентность.
create*/update*принимаютIdempotency-Key. Повторный вызов с тем же ключом — безопасен. - Long-running операции возвращают
Operation.Wait()блокирует до завершения,Poll()— async-итератор. - Ошибки типизированы.
IsNotFound(err),IsRateLimited(err),IsValidation(err).
op, err := client.Instances.Create(ctx, &h3.InstanceCreate{
Name: "my-vm", Image: "ubuntu-24.04", Flavor: "m1.medium",
})
if err != nil { return err }
inst, err := op.Wait(ctx)См. дальше: Go SDK, Python SDK, TypeScript SDK.