Что такое YAML?
YAML (YAML Ain't Markup Language) — человекочитаемый формат сериализации данных, обычно используемый для конфигурационных файлов, обмена данными и структурированного контента. Использует отступы для обозначения структуры, что делает его более читаемым, чем JSON, для сложных вложенных данных.
YAML vs JSON
YAML является надмножеством JSON — любой валидный JSON-документ также является валидным YAML. YAML добавляет комментарии (#), поддержку нескольких документов (---), якоря и алиасы (&/*) и более гибкий синтаксис. JSON проще и имеет более широкую поддержку в языках программирования.
Возможности YAML 1.2
YAML 1.2 (2009) — текущая спецификация. Ключевые возможности: якоря (&) и алиасы (*) для DRY-контента, потоки из нескольких документов, разделённых ---, явные теги типов (!!str, !!int, !!seq) и стили block/flow скаляров.
Сценарии использования
Конфигурационные файлы (Docker Compose, Kubernetes, CI/CD пайплайны), определения API (OpenAPI/Swagger), сериализация данных, форматы логов и межъязыковой обмен данными.
Ограничения
Мультидокументный YAML конвертируется в JSON-массив и не может быть обратно преобразован в мультидокументный YAML. Гибкость YAML может приводить к неоднозначности — одни и те же данные можно представить несколькими способами. Отступы табуляцией не поддерживаются (спецификация YAML рекомендует пробелы).