Como usar HTTPie para interagir com APIs do terminal

Conteúdo

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.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.