Архитектура/дизайн проекта Django Rest API - Каким должен быть хороший дизайн для моего API?
Я новичок в Django и API в целом, и я хочу создать API на базе Django, используя Django Rest Framework.
API должен иметь следующее:
API with employees CRUD:
- GET: /employees/ (employee list)
- POST: /employees/ (employee create)
- UPDATE /employees/ID/ (employee update)
- DELETE /employees/ID/ (employee delete)
- GET /employees/ID/ (employee detail)
API with reports:
- GET /reports/employees/salary/ (salary report)
- GET /reports/employees/age/ (age report)
Конечная точка для списка сотрудников:
curl -H "Content-Type: application/json" localhost:8000/employees/
Конечная точка отчета о диапазоне зарплат::
curl -H 'Content-Type: application/json' localhost:8000/reports/employees/salary/
Он должен сохранять данные в базе данных и использовать аутентификацию для доступа.
Как мне структурировать этот проект с точки зрения приложений, папок и т.д.?
До сих пор я предполагал, что у меня будет что-то вроде этого:
root
├───backend (folder)
│ │ manage.py
│ │
│ ├───api (app)
│ ├───django_project
│ ├───employees (app)
│ ├───reports (app)
│ └───users (app)
└───client
my_client.py --> will consume the api
Или, может быть, что-то вроде этого?
root
├───backend (folder)
│ │ manage.py
│ │
│ ├───api (app)
│ ├───applications (folder)
│ │ ├───employees (app)
│ │ ├───reports (app)
│ │ └───users (app)
│ └───django_project
│ settings.py
│
└───client (folder)
my_client.py
Обс: Пока просто игнорируйте недостающие файлы. Это не настоящий проект.
Мой вопрос заключается в следующем: Является ли любой из этих вариантов хорошим дизайном и/или способом структурировать мой проект? Почему или почему нет?
По сути, что превратить в приложения? Как лучше всего организовать мой проект?
Я читал это, но у меня все еще есть сомнения.
P.s.: Также, если у кого-нибудь есть другие хорошие источники информации о лучших практиках проектирования Django API, пожалуйста, дайте мне знать.
Заранее спасибо.