Estou tentando filtrar uma solicitação de curl com jq para obter campos específicos e colocá-los em variáveis. Inicialmente, eu estava usando um pedido de onda básica como este:
myResponse=$(curl -u myUsername:myPassword -XGET "https://myWebsite.com/_count?pretty&q=TEST")
Estou fornecendo meu nome de usuário e senha e obtendo uma contagem de quantas vezes o termo 'TEST' está presente, que é retornado em um json bastante. Essa resposta é colocada em uma variável chamada myResponse.
Eu usei jq para filtrar isso para obter um valor de contagem específico do json:
count='echo $myResponse | jq -r '.count''
Isso funcionou e me forneceu um número.
Então, agora eu queria experimentar um pouco. Além de obter a resposta da solicitação de onda, eu também queria recuperar o código de resposta (200, 404 etc). Então eu adaptei o meu pedido de onda para o seguinte:
myResponse=$(curl --write-out %{http_code} --silent -u myUsername:myPassword -XGET "https://myWebsite.com/_count?pretty&q=DEBUG")
Isso retornou com sucesso a resposta JSON e, depois disso, retornou o código de resposta HTTP como um número.
No entanto, quando isso é passado para jq, recebo o seguinte erro:
jq: error: Cannot index number with string
Como resolvo esse erro? Quando foi apenas json jq lidou bem com isso, mas assim que este código de resposta foi adicionado no final, não é possível analisá-lo.
Obrigado