Ответ
Для версионирования API можно использовать несколько подходов:
- URL-based версионирование
Встраиваем версию в URL:
/api/v1/users
/api/v2/users
- Заголовки HTTP
Используем кастомный заголовок:
GET /api/users
Accept: application/vnd.company.api.v1+json
- Параметры запроса
Добавляем версию как параметр:
/api/users?version=1
Пример реализации URL-based подхода в Express.js:
// v1
app.get('/api/v1/users', (req, res) => {
res.json({version: 'v1'});
});
// v2
app.get('/api/v2/users', (req, res) => {
res.json({version: 'v2', features: ['pagination']});
});
Рекомендации:
- URL-based - самый простой и понятный
- Поддерживайте старые версии 1-2 года
- Документируйте изменения между версиями
- Используйте semantic versioning (MAJOR.MINOR.PATCH)