Что такое стиль запроса (Query Style) в контексте API?

«Что такое стиль запроса (Query Style) в контексте API?» — вопрос из категории API тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Стиль запроса (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-параметров.