6033967e6a
Ship Keystone auth, multi-service handlers (Yoga→Dalmatian), Compose/Helm packaging, API contract packs, and pytest/Pulumi coverage labs.
45 lines
2.2 KiB
Markdown
45 lines
2.2 KiB
Markdown
**Language / Язык:** [English](../api-surface.md) | [Русский](api-surface.md)
|
||
|
||
# Поверхность API
|
||
|
||
## Surface-complete пакеты
|
||
|
||
Каждый пакет серии OpenStack перечисляет операции **method + path**. При старте
|
||
каждая уникальная пара `(method, path)` регистрируется как отдельный маршрут FastAPI
|
||
(`os-contract:…`), в стиле Proxmox. Stateful-обработчики из специализированных
|
||
модулей ищутся через `HandlerRegistry`; всё остальное уходит в schema-движок
|
||
(лабораторный JSON `os_api_objects`).
|
||
|
||
| Series | Services | Operations (approx.) |
|
||
|---|---|---|
|
||
| Yoga | 28 | ~1060 |
|
||
| Antelope | 28 | ~1108 |
|
||
| Caracal | 28 | ~1196 |
|
||
| Dalmatian | 28 | ~1357 |
|
||
|
||
Авторитетные числа: [api_coverage.md](api_coverage.md).
|
||
|
||
## Handlers vs schema fallback
|
||
|
||
| Слой | Сервисы / ресурсы |
|
||
|---|---|
|
||
| **Специализированные handlers** | Keystone tokens/catalog, Nova servers/flavors/keypairs/…, Neutron nets/ports/…, Glance images, Cinder volumes, Heat stacks, Swift, Ironic nodes, Octavia LBs, Placement RPs |
|
||
| **Schema fallback** | Остальные коллекции пакета (Barbican, Manila, Designate, Magnum, …), включая вложенные пути |
|
||
|
||
## Microversions
|
||
|
||
Заголовки вроде `OpenStack-API-Version: compute 2.79` и
|
||
`X-OpenStack-Nova-API-Version` принимаются и фильтруются по метаданным пакета.
|
||
Переопределения можно задать в Web UI Environment drawer.
|
||
|
||
## Actions
|
||
|
||
Nova-style `POST /servers/{id}/action` и аналогичные ops пакета `kind=action`
|
||
обрабатываются schema/action-путём (обновление power state для типичных actions).
|
||
|
||
## Ошибки
|
||
|
||
Ошибки в форме OpenStack (`OpenStackError`) с `code`, `title`, `message`.
|
||
Неизвестные маршруты, отсутствующие в активном contract-пакете, возвращают
|
||
стандартный FastAPI `404`.
|