Вопрос с подвохом, который вы можете встретить на собеседовании:
Можно ли использовать метод POST для получения данных?
👉 Да, можно.
Метод POST в REST API изначально предназначен для отправки данных на сервер с целью их обработки и создания новых записей в БД.
В то же время его можно использовать для получения данных:
👉 1. Запросы с большим количеством фильтров
Когда необходимо реализовать большое количество фильтров для получения списка, то решение отправлять их все в URL запроса как query-параметры не лучшее, т.к. это делает URL очень длинным.
Это может вызвать проблемы с ограничениями на длину URL в некоторых веб-серверах или браузерах.
Кроме того, сложные и многочисленные параметры в URL могут затруднить читаемость и понимание запроса для других разработчиков и пользователей API.
👉 2. Асинхронные запросы на получение данных: комбинирование POST и GET
Подготовила для вас пример постановки задачи на Backend, который не соответствует концепции REST API и показывает, как работать с большим количеством фильтров на поиск 😱
POST /products/search - Поиск по каталогу продуктов
Что важного внутри:
▫️ алгоритм для API в микросервисной архитектуре
▫️ кэширование - базовые требования
▫️ фильтры и сортировки в JSON
▫️ пагинация в URL
Это антипаттерн проектирования REST API для получения данных из-за POST и его нежелательного кэширования, но его часто используют в реальной жизни 🙃
Такого насыщенного деталями примера больше нигде не найдёте в открытом доступе.
🔖 Обязательно сохраняйте этот новый образец требований по REST API в личный архив и поддержите пост ❤️🔥, если это то, что вам действительно актуально
#RestApiGA #FarmFreshGA