Ответ
Стиль запроса (Query Style) — это подход в дизайне API, при котором параметры для фильтрации, сортировки, пагинации или поиска передаются в строке запроса URL (после знака ?). Это распространенная практика в RESTful API.
Пример типичного запроса в стиле query:
GET /api/v1/products?category=electronics&price_lt=1000&sort=-rating&limit=20&offset=0
Расшифровка параметров:
category=electronics— фильтр по категории.price_lt=1000— фильтр: цена меньше 1000 (часто используется синтаксис вродеlt,gt,lte).sort=-rating— сортировка по рейтингу по убыванию (префикс-).limit=20&offset=0— пагинация: 20 записей, начиная с первой.
Преимущества:
- Простота и понятность: Параметры видны прямо в URL.
- Кэширование: GET-запросы с параметрами могут кэшироваться.
- Гибкость: Клиент может комбинировать параметры.
Недостатки и риски:
- Сложность для вложенных данных: Для сложных фильтров лучше использовать POST с телом запроса или GraphQL.
- Риск инъекций: Необходима строгая валидация и экранирование параметров на стороне сервера.
- Ограничение длины URL: Большое количество параметров может превысить лимит длины URL.
Библиотеки для обработки: Многие бэкенд-фреймворки (Django REST framework, NestJS) предоставляют встроенные или сторонние решения для парсинга сложных query-параметров.