YAML — язык, преимущественно используемый для создания конфигурационных файлов. Созданный Клейтоном Р. Эваном в 2001 году, он задумывался как альтернатива XML и JSON. Изначально аббревиатура YAML расшифровывалась как «Yet Another Markup Language» (Ещё один язык разметки), но позже её изменили, подчеркнув, что YAML не является языком разметки. Расширения файлов YAML: .yaml или .yml.
Синтаксис
В качестве разделителей в YAML вместо скобок используются пробелы (обычно два). Символ табуляции (Tab) использовать нельзя. Базовой структурой YAML является словарь — пары «ключ: значение». Комментарии добавляются с помощью символа #.
Значения данных
YAML поддерживает следующие типы данных:
- Строки: Добавляются после двоеточия. Двойные кавычки не обязательны, но подчеркивают, что значение — строка.
- Числа: YAML поддерживает числовые значения.
- Логические значения: YAML поддерживает булевы значения (true/false).
- Списки: Элементы списка находятся на отдельных строках с отступом (обычно два пробела), перед каждым элементом ставится символ -.
- Словари: Значением может быть словарь, пары «ключ: значение» которого находятся на отдельных строках с отступом.
Порядок элементов в списках важен, порядок ключей в словарях — нет.
Пример вложенного словаря:
ИО:
адрес:
город: Москва
улица: Тверская
контакты:
телефон: "+7 916 123 45 67"
email: example@example.com
Пример списка словарей:
студенты:
- имя: Иван
инструктор: Сергей
год: 2024
- имя: Мария
инструктор: Анна
год: 2023
- имя: Петр
инструктор: Дмитрий
год: 2024
Короткий формат:
Списки можно записывать в квадратных скобках [], словари — в фигурных скобках {}. Этот формат удобен для коротких списков и словарей.
Применение
YAML используется во многих фреймворках, языках программирования и утилитах, например:
- Frontend (React): Создание конфигурационных файлов для разработки и продакшена.
- Docker Compose: Запуск нескольких контейнеров одновременно.
- Kubernetes: Настройка деплойментов в продакшене.
Сравнение с другими форматами
YAML — самый компактный формат по сравнению с JSON и XML. Файл YAML, как правило, занимает меньше места, чем аналогичный файл в JSON (почти вдвое) и XML (значительно меньше).
YAML — удобный и компактный формат для создания конфигурационных файлов. Однако, из-за простоты синтаксиса, легко допустить ошибки, например, пропустив пробел.