| Name | Value |
|---|---|
| Python | 3.11 |
Дозволене найменування маршрутів як в однині, так і в множині. Використовувати найменування в однині тільки в разі роботи з одним об'єктом, тобто отримання, створення, редагування та видалення одного об'єкту. Найменування в множині використовувати тільки при роботі з декількома об'єктами (списком), тобто при отриманні (частіше всього) або видаленні декількох об'єктів.
Для пагінації використовувати параметри запиту. Для фільтрів (до трьох) використовувати параметри запиту, в іншому разі параметри тіла.
Використання HTTP методів та статусів:
- Загальне
- 401 — Unauthorized: необхідна авторизація
- 403 — Forbidden: маршрут не доступний для користувача
- 404 — Not Found: маршрут не знайдений, не використовувати у випадку не знайдених даних, необхідно в такому разі повернути None або порожній список
- 422 — Unprocessable Content: помилка валідації
- 429 — Too Many Requests: перевищено ліміт запитів
- GET — отримання об'єкту
- 200 — ОК
- 204 — No Content: якщо маршрут не повертає даних
- POST — створення об'єкту
- 200 — ОК: якщо маршрут повертає дані без створення нових
- 201 — Created: у разі створення нового об'єкту в БД
- 202 — Accepted: використовувати для асинхронних запитів
- 204 — No Content: якщо маршрут не повертає даних, або використовується для авторизації
- PUT — повна заміна об'єкту
- 200 — ОК: при поверненні заміненого об'єкту
- 204 — No Content: якщо маршрут не повертає даних
- PATCH — заміна конкретних атрибутів об'єкту
- 200 — ОК: при поверненні редагованого об'єкту
- 204 — No Content: якщо маршрут не повертає даних
- DELETE — видалення об'єкту
- 200 — ОК: при поверненні видаленого об'єкту
- 204 — No Content: якщо маршрут не повертає даних
Формат повернених даних:
- Для користувацьких помилок (використовувати
HTTPException):{ "detail": "Error message" }
Для найменування таблиць використовувати PascalCase, для колонок — snake_case