Ответ
REST API используют стандартные HTTP-заголовки, такие как Content-Type и Accept, для указания формата передаваемых и ожидаемых данных. Основные форматы:
1. JSON (application/json) – стандарт де-факто
- Преимущества: Легковесный, удобочитаемый для человека, легко парсится в JavaScript и большинстве других языков.
- Пример тела запроса/ответа:
{ "userId": 12345, "name": "John Doe", "email": "john@example.com", "active": true, "roles": ["user", "admin"] }
2. XML (application/xml, text/xml) – legacy и корпоративные системы
- Преимущества: Строгая структура, поддержка пространств имен и схем (XSD).
- Пример:
<user> <id>12345</id> <name>John Doe</name> <email>john@example.com</email> </user>
3. Другие форматы (менее распространенные):
- Form Data (application/x-www-form-urlencoded): Для отправки данных из HTML-форм.
- Multipart Form Data (multipart/form-data): Для загрузки файлов.
- Plain Text (text/plain): Для простого текста.
- YAML (application/yaml): Для конфигураций.
- Бинарные протоколы (например, Protocol Buffers - application/protobuf): Для высокой производительности в микросервисных архитектурах.
Практическое использование в HTTP:
# Запрос с указанием формата тела и ожидаемого ответа
POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Accept: application/json
{"name": "Alice"}