Какие знаете форматы передачи данных?

Форматы передачи данных — это способы структурирования и кодирования информации для передачи между системами. Основные:


1️⃣ Текстовые форматы

  1. JSON (JavaScript Object Notation)

  • Очень популярный для API.

  • Пример:

{
  "id": 1,
  "name": "John",
  "active": true
}
  • Плюсы: читаемый, поддержка всех современных языков, легко парсить.

  • Минусы: большие объёмы при сложной структуре, нет бинарной оптимизации.

  1. XML (eXtensible Markup Language)

  • Использовался раньше для SOAP и старых API.

  • Пример:

<user>
  <id>1</id>
  <name>John</name>
  <active>true</active>
</user>
  • Плюсы: строгая структура, поддержка схем (XSD).

  • Минусы: более тяжеловесный, сложнее парсить, меньше популярность в новых API.

  1. YAML (YAML Ain’t Markup Language)

  • Читаемый для человека, часто для конфигураций.

  • Пример:

id: 1
name: John
active: true
  • Минусы: чувствителен к отступам, меньше стандартов.


2️⃣ Бинарные форматы

  1. Protocol Buffers (Protobuf)

  • Разработан Google.

  • Быстрее и компактнее JSON, но требует схемы.

  • Пример схемы:

message User {
  int32 id = 1;
  string name = 2;
  bool active = 3;
}
  1. MessagePack

  • Сериализация данных в бинарный формат.

  • Совместим с JSON, но более компактный.

  1. Avro

  • Используется в больших данных (Hadoop, Kafka).

  • Поддерживает схему, компактный и быстрый.


3️⃣ Специальные форматы

  1. Form-data / x-www-form-urlencoded

  • Используется в HTTP POST-запросах для передачи формы.

  • Пример:

name=John&age=30
  • Применяется для загрузки файлов и простых форм.

  1. CSV (Comma-Separated Values)

  • Табличные данные.

  • Пример:

id,name,active
1,John,true
  • Легко импортировать в Excel, базы данных.


4️⃣ Когда что использовать

  • API между сервисами: JSON (обычно) или Protobuf (для микросервисов с высокой нагрузкой).

  • Старые SOAP-сервисы: XML.

  • Конфигурации и человеко-читаемые файлы: YAML.

  • Табличные данные: CSV.

Last updated

Was this helpful?