Средний
Как правильно реализовать сложный поиск (Search) в REST API?
Если параметров поиска мало, используется GET с Query-параметрами: GET /users?age=30&city=Moscow.
Проблема: Если фильтров очень много (сложные условия AND/OR, вложенные объекты), URL станет нечитаемым и превысит лимит длины браузера (2048 символов).
Решение:
Использовать метод POST с передачей фильтров в теле запроса (JSON).
Эндпоинт: POST /users/search (или POST /users/queries).
Тело:
{
"query": {
"$or":[{ "age": 30 }, { "city": "Moscow" }]
}
}
✅ Итог: Нарушает пуризм REST (POST для чтения), но является общепринятым стандартом в индустрии (так работает Elasticsearch).