junior
Каковы лучшие практики проектирования URI?
URI в REST API должны быть предсказуемыми, читаемыми и отражать структуру ресурсов, а не операции над ними.
- Используйте существительные, а не глаголы:
Пример
GET /api/users (правильно)
GET /api/getUsers (неправильно)
POST /api/createUser (неправильно)
- Используйте множественное число для коллекций:
Пример
/api/users (правильно)
/api/users/42 (правильно)
/api/user (неправильно)
- Используйте вложенность для связанных ресурсов (не более 2-3 уровней):
Пример
GET /api/users/42/orders — заказы пользователя 42
GET /api/users/42/orders/7 — заказ 7 пользователя 42
/api/users/42/orders/7/items/3/reviews (неправильно — слишком глубоко)
/api/order-items/3/reviews (правильно)
- Используйте дефисы для разделения слов:
Пример
/api/order-items (правильно)
/api/orderItems (неправильно)
/api/order_items (неправильно)
-
Используйте строчные буквы.
-
Не используйте расширения файлов. Формат определяется через заголовок
Accept. -
Используйте query-параметры для фильтрации, сортировки и пагинации:
Пример
GET /api/users?status=active&sort=name&page=2&size=20
- Для действий вне CRUD используйте подресурсы-глаголы:
Пример
POST /api/users/42/activate
POST /api/orders/7/cancel
-
Используйте префикс версии (
/api/v1/users). -
Всегда используйте префикс
/api.
На собеседовании: интервьюер ожидает знания основных правил: существительные, множественное число, дефисы, строчные буквы. Частая ошибка — использовать глаголы в URI (POST /api/createUser) или camelCase (/api/orderItems).