С какими форматами данных вы работали при использовании REST API?

«С какими форматами данных вы работали при использовании REST API?» — вопрос из категории Сети, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

REST API обычно используют форматы на основе текста для сериализации данных в теле HTTP-запросов и ответов.

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

  1. JSON (JavaScript Object Notation)де-факто стандарт.

    • Почему: Легко читается и для человека, и для машины, компактный, имеет широкую поддержку во всех языках и фреймворках.
    • Content-Type: application/json.
    • Пример:
      {
      "id": 123,
      "name": "John Doe",
      "active": true
      }
  2. XML (eXtensible Markup Language) — чаще встречается в legacy-системах или специфичных доменах (например, SOAP).

    • Content-Type: application/xml или text/xml.
    • Пример:
      <user>
      <id>123</id>
      <name>John Doe</name>
      <active>true</active>
      </user>

Реже, но также возможны:

  • Form Data (application/x-www-form-urlencoded) — для отправки простых пар ключ-значение, обычно из HTML-форм.
  • Multipart Form Data (multipart/form-data) — для отправки бинарных файлов вместе с данными формы.
  • Текстовые форматы: YAML, Plain Text (text/plain).

На практике в современных Spring Boot приложениях JSON используется в 95% случаев, а конвертация в объекты Java (и наоборот) автоматически выполняется библиотеками, такими как Jackson.