agent-control-center/docs/spec-series/08_API_Specification.md

112 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Документ 08. API Specification
## Назначение
Документ определяет стандарты REST API платформы Agent Control Center,
правила проектирования endpoint'ов, форматы данных и требования к
совместимости.
# 1. Общие принципы
- REST API с JSON.
- OpenAPI 3.1.
- Версионирование через `/api/v1`.
- UTF-8.
- UTC для дат и времени.
- UUID как идентификаторы ресурсов.
# 2. Аутентификация
Поддерживаются: - OAuth2/OIDC; - Bearer Token; - API Keys (для сервисных
интеграций).
Каждый запрос должен содержать корректные учетные данные, если ресурс не
является публичным.
# 3. Структура URL
Примеры:
- GET /api/v1/projects
- POST /api/v1/projects
- GET /api/v1/projects/{project_id}
- PATCH /api/v1/projects/{project_id}
- DELETE /api/v1/projects/{project_id}
Аналогичная структура используется для: - workspaces; - tasks; - runs; -
agents; - connectors; - artifacts; - memories; - approvals.
# 4. Правила запросов
- Использовать HTTP-методы по назначению.
- Поддерживать пагинацию.
- Поддерживать фильтрацию.
- Поддерживать сортировку.
- Поддерживать идемпотентность для повторяемых операций.
# 5. Формат ответов
Успешный ответ:
``` json
{
"data": {},
"meta": {
"request_id": "uuid"
}
}
```
Ошибка:
``` json
{
"error": {
"code": "ACC-4001",
"message": "Validation failed"
},
"meta": {
"request_id": "uuid"
}
}
```
# 6. Коды ошибок
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 409 Conflict
- 422 Validation Error
- 429 Too Many Requests
- 500 Internal Server Error
Коды ошибок должны соответствовать отдельному каталогу ошибок.
# 7. Версионирование
- `/api/v1` --- стабильная версия.
- Несовместимые изменения требуют новой версии API.
- Устаревшие версии сопровождаются периодом депрекации.
# 8. Идемпотентность
Для операций создания и запуска рекомендуется поддерживать заголовок
`Idempotency-Key`.
# 9. Трассировка
Каждый запрос должен иметь: - request_id; - correlation_id (при наличии
распределенных операций).
# 10. Документация
- OpenAPI спецификация генерируется автоматически.
- `/docs` --- Swagger UI.
- `/redoc` --- ReDoc.
- `/openapi.json` --- машинное описание API.
## Следующий документ
09_Event_Bus.md