Isenção de responsabilidade
Em primeiro lugar, esta é uma das minhas primeiras perguntas sobre SE, por isso peço desculpas se quebrei alguma convenção escrita ou não.
Introdução
Em meu trabalho, em uma espécie de função de atendimento/suporte ao cliente, muitas vezes tenho que verificar os arquivos de log de uma de nossas interfaces REST (formato JSON).
Este log contém as solicitações feitas em um de nossos webservices. Os dados são estatisticamente interessantes para nós, então em algum momento um de nossos desenvolvedores criou uma ferramenta que extraiu dados do log e retornou um arquivo CSV que pode ser usado para manipulação de dados.
No entanto, um de nossos outros clientes (em outro servidor) usa o serviço web de maneira um pouco diferente, o que faz com que a ferramenta não consiga processar os dados. O problema é que nossos desenvolvedores estão muito ocupados e esse não é um problema de alta prioridade. Ainda assim, parece-me que isto deveria ser bastante simples, por isso gostaria de causar uma boa impressão e talvez construir isto sozinho.
Exemplo
Exemplo de entrada (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
Exemplo de saída (CSV):
ID;Parameter 1;Parameter 2
ABC123;true;true
eu tenho técnicotalentomas absolutamente nenhum treinamento formal em codificação além dos cursos mais básicos de HTML, Python e Ruby na CodeAcademy.
Pergunta
Na verdade, esta é uma pergunta de duas partes:
- Como/onde posso aprender a fazer tal ferramenta/script? Qual idioma, com qual canal aprender, etc.
- É realista para mim tentar construir isso? E o tempo gasto aprendendo isso vale a pena?
Informação extra
Quero construir a ferramenta sozinho; não copie em uma solução que um de vocês possa fazer em minutos. Uma razão para isso é que o uso do nosso serviço web varia de cliente para cliente, então outro cliente pode estar usando-o assim (para o qual também quero estar preparado):
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
(observe que em vez de colocar a solicitação diretamente após /, a solicitação é inserida no campo "ID_1" e um campo extra opcional "ID_2" também contém dados)