🚩Кейс: Проектирование REST API для нового сервиса.
1️⃣ Если сервис не является владельцем сущности системы, а просто выполняет какую-то функцию, необходимо:
🔸 Реализовать синхронный метод для вызова функции сервиса;
🔸 Реализовать асинхронный метод для вызова функции сервиса;
🔸 При необходимости, реализовать методы для множественного вызова по списку объектов.
2️⃣ Сервис является владельцем сущности в системе:
🔸Реализовать методы на все CRUD-операции (могут быть множественными);
🔸Реализовать метод получения списка объектов;
🔸Не забыть про пагинацию, если она нужна;
🔸Не забыть про фильтрацию списка;
🔸Для сложной фильтрации стоит использовать метод POST для получения списка;
🔸При наличии дополнительной логики работы с объектами реализовать для нее методы.
3️⃣ Для всех сервисов:
🔸Авторизация штатными средствами вашей системы;
🔸Используйте формат данных, принятый для таких сервисов на проекте;
🔸Напомните разработчику про правильные коды ответов;
🔸Не забывайте о принципе единственной ответственности.
Post #58
927