43 lines
1.3 KiB
Markdown
43 lines
1.3 KiB
Markdown
# Жизненный цикл API
|
|
|
|
---
|
|
|
|
## Версионирование
|
|
|
|
API версионируется через URL:
|
|
|
|
```
|
|
/api/v1/ideas # Текущая стабильная
|
|
/api/v2/ideas # Будущая версия
|
|
```
|
|
|
|
---
|
|
|
|
## Жизненный цикл
|
|
|
|
```
|
|
Стабильная (v1) → Deprecation → 410 Gone
|
|
```
|
|
|
|
| Фаза | Длительность | Действие |
|
|
|------|-------------|----------|
|
|
| **Стабильная** | Неопределённо | Полная поддержка |
|
|
| **Deprecation** | 3 месяца после выхода v2 | WARNING в заголовке `Sunset: ...` |
|
|
| **Gone** | — | HTTP 410 Gone |
|
|
|
|
---
|
|
|
|
## Поддержка
|
|
|
|
- Одновременно поддерживаются **не более 2 версий**
|
|
- Новая версия = новый префикс (`/api/v2/`)
|
|
- Старая версия продолжает работать 3 месяца
|
|
|
|
---
|
|
|
|
## [ASK] Вопросы по API
|
|
|
|
- Сколько версий поддерживать одновременно? (рекомендуется 2: текущая + предыдущая)
|
|
- Нужна ли HATEOAS? (нет, если фронтенд отдельно)
|
|
- Как документировать breaking changes? (CHANGELOG + ADR)
|