HTTPie: Uma alternativa amigável ao curl


HTTPie é um cliente HTTP de linha de comando com uma interface de usuário intuitiva, suporte a JSON, destaque de sintaxe, downloads semelhantes a wget, plug-ins e muito mais.

Seu objetivo é tornar a interação da CLI com os serviços da Web o mais amigável possível. Ele fornece um comando http simples que permite o envio de solicitações HTTP arbitrárias usando uma sintaxe simples e natural e exibe saída colorida. O HTTPie pode ser usado para teste, depuração e interação geral com servidores HTTP.

O HTTPie consiste em um único comando http projetado para depuração indolor e interação com servidores HTTP, APIs RESTful e serviços da Web, que ele realiza por:
- Padrões sensíveis
- Sintaxe de comando expressiva e intuitiva
- Saída de terminal colorida e formatada
- Suporte JSON incorporado
- Sessões persistentes
- Upload de formulários e arquivos
- Suporte a HTTPS, proxies e autenticação
- Suporte para dados de solicitação e cabeçalhos arbitrários
- Downloads semelhantes ao Wget
- Extensões
- Suporte para Linux, macOS e Windows
E mais…


Instalação
O HTTPie pode ser instalado em qualquer sistema operacional de forma bem simples.

Linux:
apt-get install httpie

Windows:
pip install httpie
Para a instalação no Windows funcionar corretamente, você deve ter o Python instalado em sua máquina.

Para ver todas as possíbildades de instalação você pode acessar a documentação oficial.

Começando
Para ver todos os comandos diponíveis no HTTPie basta rodar o comando abaixo ou acessar a documentação:
http --help

A sua sintaxe é bem simples:
http MÉTOD_HTTP URL PARÂMETROS

Exemplo:
http PUT example.org X-API-Token:123 name=John
O comando acima estamos fazendo uma solicitação HTTP passando o método PUT para a URL example.org. Como parâmetros estamos enviando o header X-API-Token e o body no formato JSON com os dados name=John.

Mas como eu sei quando estou enviando um body ou um header?
O que diferencia um do outro é o seu separador. Veja abaixo alguns exemplos:

Header
Para passar um ou mais Headers basta separar a key e o valor por ':'.

Exemplo:
http PUT example.org X-API-Token:123 X-IP-User:127.0.0.1 name=John
Veja que passei dois headers para a chamada, sendo o primeiro o X-API-Token e o segundo sendo o X-IP-User.

Body
O separador utilizado para enviar o Body é o '='. Se você quiser enviar os dados do tipo JSON basta informar --json ou -j no final da request e se quiser enviar do tipo de formulario basta informar --form ou -f no final.

Exemplo:
http PUT example.org X-API-Token:123 name=HTTPie language=Python --json

QueryString
O separador utilizado para enviar uma ou mais QueryString é o '=='.

Exemplo:
http GET example.org search==httpie

Enviar arquivo:
Para enviar um arquivo basta separar a key e o valor por '=@'.

Exemplo:
http POST example.org essay=@Documents/essay.txt

Existe também vários outros outputs que podem ser informados na request. Você pode ver todos que estão disponpiveis na documentação.

Comentários

Postagens mais visitadas deste blog

Oh My Zsh: Melhorando a produtividade do seu terminal

asdf-vm: Gerenciador de versão extensível com suporte a várias linguagens e ferramentas de desenvolvimento