Этот вопрос проверяет понимание различных способов передачи данных в HTTP-запросах и их правильного применения в разных сценариях.
Path parameters идентифицируют конкретный ресурс в URL (/users/123). Query parameters используются для фильтрации, сортировки и пагинации (?page=1). Headers передают метаинформацию: авторизацию, кеширование, тип контента. Body содержит данные для создания или обновления ресурсов в форматах JSON, XML. Каждый тип имеет специфичное применение в REST API.
Идентификация конкретного ресурса
Обязательная часть URL структуры
Используются для указания идентификаторов
text
GET /api/users/{userId}
GET /api/products/{productId}/reviews/{reviewId}http
GET /api/users/123
DELETE /api/products/456
GET /api/categories/books/items/789Часть маршрута URL
Всегда обязательные
Порядок имеет значение
Кодируются автоматически
Фильтрация и поиск данных
Пагинация и сортировка
Опциональные параметры
Модификация ответа
text
GET /api/resources?param1=value1¶m2=value2http
# Фильтрация
GET /api/users?status=active&role=admin
# Пагинация
GET /api/products?page=2&limit=20
# Сортировка
GET /api/orders?sort=created_at:desc
# Выбор полей
GET /api/articles?fields=title,contentНачинаются после ? в URL
Пары ключ=значение через &
Порядок не важен
Подвержены ограничениям длины URL
Метаинформация о запросе
Авторизация и аутентификация
Управление кешированием
Определение форматов данных
http
Authorization: Bearer token123
Content-Type: application/json
Accept: application/json
Cache-Control: no-cache
User-Agent: MyApp/1.0Authentication: Authorization, API-Key
Content: Content-Type, Content-Length
Caching: Cache-Control, ETag
Client: User-Agent, Accept-Language
Передача данных для создания/обновления
Сложные структуры данных
Большие объемы информации
json
// JSON
{
"name": "John Doe",
"email": "john@example.com"
}xml
<!-- XML -->
<user>
<name>John Doe</name>
<email>john@example.com</email>
</user>http
POST /api/users
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com"
}Идентификаторов ресурсов
Иерархических связей
Обязательных параметров маршрута
Опциональной фильтрации
Пагинации и сортировки
Параметров поиска
Модификации поведения API
Авторизации
Метаданных запроса
Управления кешем
Определения форматов
Данных создания ресурсов
Сложных объектов
Больших объемов данных
Операций изменения состояния
Вывод: Правильный выбор типа параметров критически важен для создания понятного, стандартизированного и эффективного API. Path параметры идентифицируют что, query параметры определяют как, headers содержат контекст, а body передает содержимое.