Какие знаете форматы передачи данных?
Форматы передачи данных — это способы структурирования и кодирования информации для передачи между системами. Основные:
1️⃣ Текстовые форматы
JSON (JavaScript Object Notation)
Очень популярный для API.
Пример:
{
"id": 1,
"name": "John",
"active": true
}
Плюсы: читаемый, поддержка всех современных языков, легко парсить.
Минусы: большие объёмы при сложной структуре, нет бинарной оптимизации.
XML (eXtensible Markup Language)
Использовался раньше для SOAP и старых API.
Пример:
<user>
<id>1</id>
<name>John</name>
<active>true</active>
</user>
Плюсы: строгая структура, поддержка схем (XSD).
Минусы: более тяжеловесный, сложнее парсить, меньше популярность в новых API.
YAML (YAML Ain’t Markup Language)
Читаемый для человека, часто для конфигураций.
Пример:
id: 1
name: John
active: true
Минусы: чувствителен к отступам, меньше стандартов.
2️⃣ Бинарные форматы
Protocol Buffers (Protobuf)
Разработан Google.
Быстрее и компактнее JSON, но требует схемы.
Пример схемы:
message User {
int32 id = 1;
string name = 2;
bool active = 3;
}
MessagePack
Сериализация данных в бинарный формат.
Совместим с JSON, но более компактный.
Avro
Используется в больших данных (Hadoop, Kafka).
Поддерживает схему, компактный и быстрый.
3️⃣ Специальные форматы
Form-data / x-www-form-urlencoded
Используется в HTTP POST-запросах для передачи формы.
Пример:
name=John&age=30
Применяется для загрузки файлов и простых форм.
CSV (Comma-Separated Values)
Табличные данные.
Пример:
id,name,active
1,John,true
Легко импортировать в Excel, базы данных.
4️⃣ Когда что использовать
API между сервисами: JSON (обычно) или Protobuf (для микросервисов с высокой нагрузкой).
Старые SOAP-сервисы: XML.
Конфигурации и человеко-читаемые файлы: YAML.
Табличные данные: CSV.
Last updated
Was this helpful?