HTTPie é um cliente HTTP para o seu terminal. Projetado como uma alternativa moderna para curl
, HTTPie simplifica a interação com APIs, oferecendo sintaxe simples e saída formatada automaticamente.
Disponível em Windows, Mac y Linux, obtendo configuração deve ser uma questão simples. A maioria das distribuições Linux agora incluem HTTPie em seus repositórios de pacotes, então você pode apt
, dnf
o pacman
começar. Também é habilitado por meio do Homebrew para usuários de Mac., e como um pacote Python entregue via Pip em todas as três plataformas (pip install httpie
).
Uma vez instalado, HTTPie registra o http
e https
comandos em seu shell. Agora você tem uma maneira simples e expressiva de chamar endpoints de API sem sair de seu terminal!!
Comandos básicos
Em sua forma mais simples, HTTPie pode receber um URL para fazer um GET
aplicativo:
http example.com
Para enviar dados, especifique o verbo HTTP apropriado e, em seguida, passe seus pares de chaves / valor como parâmetros de linha de comando adicionais:
http POST example.com foo = bar hello = world
Por padrão, os dados são enviados como JSON com cabeçalhos de solicitação adequados. Para enviá-lo como um formulário, passe o -f
parâmetro.
Ao usar sintaxe JSON, note que todos os campos são regularmente enviados como strings. Você pode usar o :=
sintaxe em vez de =
mudar para o modo de dados brutos. Um parâmetro examples:='[1, 2]'
então ele vai resultar no examples
a chave é definida para uma matriz de dois inteiros.
Cabeçalhos e cookies
Para determinar um cabeçalho de solicitação, especificar o nome e o valor do cabeçalho como uma sequência separada por um cólon:
http Obter autorização de example.com:Foobar
HTTPie define alguns cabeçalhos, O que User-Agent
, por padrão. estes podem ser excluídos especificando-os explicitamente com um valor vazio.
Os cookies são definidos definindo uma sequência com cookies como valores delimitados por um cólon:
http GET example.com "Biscoito:foo=bar;Olá=mundo"
Na realidade, este é apenas um caso especial de determinar o Cookie
cabeçalho, que é como os cookies são enviados por HTTP.
Trabalhando com arquivos
Você pode carregar e baixar arquivos usando redirecionamentos padrão de shell:
http POST example.com/upload < ~/example.pdf
http GET example.com/download.pdf > ~/baixar.pdf
Além disso, você pode fazer upload de arquivos como parte de um envio de formulário HTTP por meio do uso de @
sintaxe:
http -f POST example.com/form-with-file hello ="Olá Mundo" myUpload@~/example.pdf
Isso agirá de forma idêntica à entrada de um arquivo HTML com name="myUpload"
. Em seu lugar, você pode carregar dados de um arquivo e incorporá-los à solicitação usando o =@
sintaxe, ao invés de @
.
Sessões
HTTPie tem suporte integrado para sessões persistentes. Eles permitem que você reutilize componentes de solicitação, como cabeçalhos HTTP e cookies, entre solicitações feitas ao mesmo host.
Você pode criar e usar sessões configurando o --session
parâmetro. Como um valor, especifique o caminho para um arquivo que será usado para salvar sua nova sessão.
http --session=./my-session.json GET example.com Authorization:Foobar
Os dados que são suportados pelas sessões, como ele Authorization
cabeçalho em solicitação anterior, agora será salvo para o arquivo. Em solicitações subsequentes, agora você pode pular o Authorization
cabeçalho: será automaticamente incluído conforme definido em sua sessão.
Em vez de especificar um arquivo de sessão, você também pode usar um nome simples (--session=example
). Nesta circunstância, HTTPie salvará automaticamente a sessão em um arquivo gerenciado internamente. Cada sessão está ligada ao host de onde se origina, pelo que http --session=example example1.com
e http --session=example example2.com
existirão independentemente um do outro.
Gerenciar saída
Uma das melhorias significativas do HTTPie em relação a utilitários como curl
é a sua formatação de resposta automática. Os corpos JSON são concretamente bem manuseados, com indentação adequada, classificação alfabética de objetos por suas chaves e conversão correta de caracteres Unicode.
Você pode personalizar como a saída é processada usando algumas opções diferentes. a --pretty
a bandeira pode ser definida para --all
(predefinição), --colors
(apenas cores), --format
(apenas formatando) o --none
(para desativar todo o processamento de saída e visualizar os dados brutos).
Ao mesmo tempo, você pode alterar o esquema de cores usando o --style
bandeira. Os esquemas disponíveis são auto
(o valor padrão), default
(usar estilos de biblioteca de Pigmentos subjacentes), fruity
e o popular monokai
.
Você não precisa se preocupar com o formato padrão ao redirecionar a saída para um arquivo. HTTPie irá reconhecer que está sendo redirecionado e irá apenas canalizar os dados sem aplicar qualquer formatação. Isso também significa que as respostas binárias, que regularmente nunca são emitidos para o terminal, pode ser canalizado para arquivos.
Arquivo de configuração
HTTPie suporta um arquivo de configuração básica que pode ser usado para definir a configuração padrão. Eles se aplicarão a todas as solicitações que você fizer. O arquivo deve ser salvo em ~/.config/httpie/config.json
en Linux / Mac e %APPDATA%httpieconfig.json
no Windows.
Uma única chave de configuração é suportada, default_options
, que aceita uma matriz básica de parâmetros para adicionar aos comandos HTTPie que você executa:
{ "opções_padrão": [ "Autorização:Foobar", "--bonita = nenhuma", "--style = monokai" ] }
Qualquer opção que seja compatível com a interface de linha de comando HTTPie pode ser incluída. Você pode substituir suas opções padrão definindo-as com um novo valor cada vez que você executa o HTTPie.
conclusão
HTTPie é uma ferramenta completa que traz APIs HTTP para o seu terminal. É uma alternativa moderna para produtos Unix básicos como curl
que é projetado para uso regular por desenvolvedores e testadores. Mesmo que a sintaxe possa ser complicada às vezes, no geral é expressivo e memorável.
É importante observar que dedica algum tempo para ler o documentação oficial se você deseja aprender mais sobre HTTPie. Todo o desenvolvimento ocorre ao ar livre em GitHub, com suporte fornecido em Rede e Estouro de pilha.