Отказ от ответственности
Во-первых, это один из моих первых вопросов по SE, поэтому прошу прощения, если я нарушу какие-либо писаные или неписаные правила.
Введение
На своей работе, связанной с обслуживанием/поддержкой клиентов, мне часто приходится проверять файлы журналов одного из наших интерфейсов REST (формат JSON).
Этот журнал содержит запросы, сделанные на одном из наших веб-сервисов. Данные интересны нам статистически, поэтому в какой-то момент один из наших разработчиков создал инструмент, который извлекал данные из журнала и возвращал CSV-файл, который можно использовать для манипуляции данными.
Однако один из наших других клиентов (на другом сервере) использует веб-сервис немного по-другому, из-за чего инструмент не может обрабатывать данные. Дело в том, что наши разработчики очень заняты, и это не является высокоприоритетной проблемой. Тем не менее, мне кажется, что это должно быть довольно просто, поэтому я хотел бы произвести хорошее впечатление и, возможно, создать это сам.
Пример
Пример ввода (JSON):
2017-01-31 05:42:43:587 -> 2017-01-31 05:42:43:587:1536:GET /v1/webservice_path.../ABC123 X-Api-Key:xyz
2017-01-31 05:42:43:587 <- 2017-01-31 05:42:43:587:1536:OK:{
"parameter 1": true,
"parameter 2": true
Пример вывода (CSV):
ID;Parameter 1;Parameter 2
ABC123;true;true
У меня есть техническийчутьёно абсолютно никакого формального обучения программированию, за исключением самых базовых курсов HTML, Python и Ruby на CodeAcademy.
Вопрос
На самом деле этот вопрос состоит из двух частей:
- Как/где мне научиться создавать такой инструмент/скрипт? На каком языке, по какому каналу учиться и т. д.
- Реально ли вообще попытаться построить это? И стоит ли тратить время на изучение этого?
Дополнительная информация
Я хочу создать инструмент сам, а не копировать решение, которое кто-то из вас может сделать за считанные минуты. Одна из причин этого заключается в том, что использование нашего веб-сервиса различается от клиента к клиенту, поэтому другой клиент может использовать его следующим образом (к чему я также хочу быть готов):
2017-01-31 05:42:43:587 -> 2017-01-31 05:42:43:587:1536:GET /v1/webservice_path.../ ID_1:ABC123 ID2_:QWE456 X-Api-Key:xyz
2017-01-31 05:42:43:587 <- 2017-01-31 05:42:43:587:1536:OK:{
"parameter 1": true,
"parameter 2": true
"parameter 3": true
(обратите внимание, что вместо помещения запроса непосредственно после /, запрос вводится в поле «ID_1», а необязательное дополнительное поле «ID_2» также содержит данные)