Какие форматы данных (MIME-типы) обычно используются в REST API для обмена информацией?

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

Ответ

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"}