Выполнение домашнего задания по теме "4.3. Языки разметки JSON и YAML".
Q/A
Обязательная задача 1
Мы выгрузили JSON, который получили через API запрос к нашему сервису:
{ "info" : "Sample JSON output from our service\t",
"elements" :[
{ "name" : "first",
"type" : "server",
"ip" : 7175
}
{ "name" : "second",
"type" : "proxy",
"ip : 71.78.22.43
}
]
}
Нужно найти и исправить все ошибки, которые допускает наш сервис.
Решение:
{
"info": "Sample JSON output from our service\t",
"elements": [
{
"name": "first",
"type": "server",
"ip": 7175
},
{
"name": "second",
"type": "proxy",
"ip": "71.78.22.43"
}
]
}
Обязательная задача 2
В прошлый рабочий день мы создавали скрипт, позволяющий опрашивать веб-сервисы и получать их IP.
К уже реализованному функционалу нам нужно добавить возможность записи JSON и YAML файлов, описывающих наши сервисы.
Формат записи JSON по одному сервису: { "имя сервиса" : "его IP"}.
Формат записи YAML по одному сервису: - имя сервиса: его IP.
Если в момент исполнения скрипта меняется IP у сервиса - он должен так же поменяться в yml и json файле.
Ваш скрипт:
???
Вывод скрипта при запуске при тестировании:
???
json-файл(ы), который(е) записал ваш скрипт:
???
yml-файл(ы), который(е) записал ваш скрипт:
???
Дополнительное задание (со звездочкой*) - необязательно к выполнению
Так как команды в нашей компании никак не могут прийти к единому мнению о том, какой формат разметки данных использовать: JSON или YAML, нам нужно реализовать парсер из одного формата в другой. Он должен уметь:
- Принимать на вход имя файла
- Проверять формат исходного файла. Если файл не json или yml - скрипт должен остановить свою работу
- Распознавать какой формат данных в файле. Считается, что файлы *.json и *.yml могут быть перепутаны
- Перекодировать данные из исходного формата во второй доступный (из JSON в YAML, из YAML в JSON)
- При обнаружении ошибки в исходном файле - указать в стандартном выводе строку с ошибкой синтаксиса и её номер
- Полученный файл должен иметь имя исходного файла, разница в наименовании обеспечивается разницей расширения файлов
Ваш скрипт:
???
Пример работы скрипта:
???