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

Ответ

REST API для обмена данными между клиентом и сервером чаще всего используют следующие форматы. Конкретный формат указывается в HTTP-заголовке Content-Type.

Основные форматы:

  1. JSON (JavaScript Object Notation) — современный стандарт де-факто. Легковесный, легко читается и парсится.

    {
      "id": 123,
      "title": "API Response",
      "items": [1, 2, 3],
      "active": true
    }

    Заголовок: Content-Type: application/json

  2. XML (eXtensible Markup Language) — используется в legacy-системах и некоторых специфичных протоколах (например, SOAP). Более многословный, чем JSON.

    <response>
      <id>123</id>
      <title>API Response</title>
      <active>true</active>
    </response>

    Заголовок: Content-Type: application/xml

  3. Form Data (x-www-form-urlencoded & multipart/form-data) — для отправки данных HTML-форм. multipart используется для загрузки файлов. Заголовок: Content-Type: application/x-www-form-urlencoded или multipart/form-data

  4. Текстовые форматы (Plain Text, HTML, YAML) — используются реже, для специфичных задач (например, YAML для конфигураций, HTML для веб-страниц).

Практический совет: При тестировании API всегда проверяйте, что сервер корректно обрабатывает заявленный Content-Type и возвращает корректный Content-Type в ответе (например, application/json).

Ответ 18+ 🔞

А, слушай, вот этот твой REST API, он же, блядь, не просто так данные туда-сюда швыряет! Там же целая ёперная кухня с форматами, и если не угадаешь — сервер тебе такую ошибку вывалит, что мало не покажется. Главное — не забыть в заголовке Content-Type ткнуть носом серверу, мол, «смотри, мудак, я тебе вот ЭТО сейчас подсуну».

Ну, поехали, что там у нас в ходу:

  1. JSON — это сейчас царь и бог, де-факто стандарт, его везде суют. Лёгкий, читаемый, прям как для людей. Вся эта ваша модная фронтендовая хуйня его обожает.

    {
      "id": 123,
      "title": "API Response",
      "items": [1, 2, 3],
      "active": true
    }

    А чтобы сервер не обосрался, кричи ему в ухо: Content-Type: application/json. Мол, «прими, сука, объектик».

  2. XML — это такой старый пердун, из прошлой эры. Многословный, как пьяный дед на лавочке, тэгов дохуя. Но в каких-то древних конторах или в этих ваших SOAP-сервисах до сих пор живёт, блядь.

    <response>
      <id>123</id>
      <title>API Response</title>
      <active>true</active>
    </response>

    Тут уже орёшь: Content-Type: application/xml. А то он подумает, что это JSON, и сломается, пидарас.

  3. Form Data — это когда тебе надо эмулировать, будто ты форму на сайте отправил. Два варианта:

    • x-www-form-urlencoded — для обычных полей, типа «логин=вася&пароль=123».
    • multipart/form-data — вот это уже серьёзно, когда файлы цепляешь. Картинку какую-нибудь или документ. Без этого — никуда. Заголовок, соответственно, подбираешь, как ключ к замку.
  4. Просто текст (и другие) — ну, это уже на любителя. YAML, HTML, plain text. Для каких-то узких, ебученьких задач. Но в целом, если не уверен — не выёбывайся, юзай JSON.

И главный практический совет, на всю голову: Когда тестируешь эту всю хуйню, смотри в оба за этими Content-Type! Что отправил, что получил в ответ. А то бывает, отправишь JSON, а сервер тебе в ответ, сука, HTML с ошибкой плюнет, да ещё и с Content-Type: text/html. И сиди потом, гадай, почему твой парсер JSON'а охуел и сломался. Всё должно совпадать, как яйца у гуся!