Ответ
Основные форматы передачи данных:
| Формат | Описание | Типичное применение | Пример |
|---|---|---|---|
| JSON | Текстовый, лёгкий, читаемый человеком, основан на парах «ключ-значение». | REST API, конфигурации, обмен между веб-сервисами. | ```json |
{ "user": { "name": "Alice", "age": 30, "active": true } }
| **XML** | Структурированный, строгий, с поддержкой схем (XSD). | **SOAP API**, конфигурационные файлы (например, в Java), документы. | ```xml
<user>
<name>Alice</name>
<age>30</age>
<active>true</active>
</user>
``` |
| **YAML** | Формат, ориентированный на читаемость, с отступами. | Конфигурации (Docker Compose, Kubernetes, CI/CD). | ```yaml
user:
name: Alice
age: 30
active: true
``` |
| **CSV** | Простой табличный формат, значения разделены запятыми. | Экспорт/импорт табличных данных (Excel, базы данных). | ```csv
name,age,active
Alice,30,true
Bob,25,false
``` |
| **Protocol Buffers (protobuf)** | Бинарный, эффективный, требует предварительной схемы. | **Высокопроизводительные gRPC API**, внутренняя коммуникация микросервисов. | (Бинарный, нечитаемый) |
**Критерии выбора:**
* **Человекочитаемость и простота:** JSON, YAML.
* **Строгость и валидация:** XML.
* **Производительность и размер:** Protocol Buffers, MessagePack.
* **Совместимость с устаревшими системами:** XML, CSV.