Como usar HTTPie para interagir com APIs de seu terminal

HTTPie é um cliente HTTP para o seu terminal. Projetado como uma alternativa moderna ao curl, o HTTPie simplifica a interação com APIs, oferecendo uma sintaxe direta e saída formatada automaticamente.
Disponível no Windows, Mac e Linux, obter a configuração deve ser uma tarefa simples. A maioria das distribuições Linux agora incluem HTTPie em seus repositórios de pacotes, então você pode rapidamente iniciar o apt, dnf ou pacman. Ele também está disponível via 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 os comandos http e https 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 uma solicitação GET imediatamente:
http example. com
Para enviar dados, especifique o verbo HTTP apropriado e, em seguida, passe seus pares de chave / 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 apropriados. Em vez disso, para enviar como um formulário, passe o parâmetro -f.
Ao usar a sintaxe JSON, esteja ciente de que todos os campos são normalmente enviados como strings. Você pode usar a sintaxe: = em vez de = para alternar para o modo de dados brutos. Exemplos de parâmetros: = '[1, 2]' resultará na chave de exemplos definida como uma matriz de dois inteiros.
Cabeçalhos e cookies
Para definir um cabeçalho de solicitação, especifique o nome e o valor do cabeçalho como uma string separada por dois pontos:
Autorização http GET example. com: foobar
HTTPie define alguns cabeçalhos, como User-Agent, por padrão. Eles podem ser removidos especificando-os explicitamente com um valor vazio.
Os cookies são definidos definindo uma string com os cookies como valores delimitados por dois pontos:
http GET example. com "Cookie: foo = bar; hello = world"
Este é realmente apenas um caso especial de configuração do cabeçalho do Cookie, que é como os cookies são enviados por HTTP.
Trabalhando com arquivos
Você pode fazer upload e download de arquivos usando redirecionamentos de shell padrão:
http POST example. com/upload < ~ / example. pdf http GET example. com/download. pdf > ~ / download. pdf
Você também pode fazer upload de arquivos como parte de um envio de formulário HTTP usando a sintaxe @ especial:
http -f POST example. com/form-with-file hello = "Hello World" myUpload@~/example. pdf
Isso agirá de forma idêntica a uma entrada de arquivo HTML com name = "myUpload". Em vez disso, você pode carregar dados de um arquivo e incorporá-los à solicitação usando a sintaxe = @, em vez de @.
Sessões
HTTPie possui 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ê cria e usa sessões definindo o parâmetro --session. Como valor, especifique o caminho para um arquivo que será usado para armazenar sua nova sessão.
http --session =. / my-session. json GET example. com Autorização: foobar
Dados que são suportados por sessões, como o cabeçalho de autorização na solicitação acima, agora serão salvos no arquivo. Em solicitações subsequentes, agora você pode omitir o cabeçalho de autorização – ele será incluído automaticamente conforme definido em sua sessão.
Em vez de especificar um arquivo de sessão, você também pode usar um nome simples (--session = exemplo). Nesse caso, o HTTPie salvará automaticamente a sessão em um arquivo gerenciado internamente. Cada sessão está ligada ao host de origem, portanto http --session = example example1. com e http --session = example example2. com existirão independentemente um do outro.
Gerenciamento de saída
Uma das melhorias significativas do HTTPie em relação a utilitários como o curl é a formatação automática das respostas. Os corpos JSON são particularmente bem tratados, 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 é renderizada usando algumas opções diferentes. O sinalizador --pretty pode ser definido como --all (padrão), --colors (apenas cores), --format (apenas formatação) ou --none (para desativar todo o processamento de saída e ver os dados brutos).

Além disso, você pode alterar o esquema de cores usando o sinalizador --style. Os esquemas disponíveis são automático (o padrão), padrão (use os estilos da biblioteca Pygments subjacentes), frutado e o popular monokai.
Você não precisa se preocupar com a formatação padrão ao redirecionar a saída para um arquivo. O HTTPie reconhecerá que está sendo redirecionado e simplesmente enviará os dados brutos sem aplicar qualquer formatação. Isso também significa que as respostas binárias, que normalmente nunca são emitidas para o terminal, podem ser canalizadas para os arquivos.
Arquivo de configuração
HTTPie oferece suporte a um arquivo de configuração básica que pode ser usado para definir as configurações padrão. Eles serão aplicados a todas as solicitações que você fizer. O arquivo deve ser salvo em ~ / . config / httpie / config. json no Linux / Mac e% APPDATA% \ httpie \ config. json no Windows.
Uma única chave de configuração é suportada, default_options, que aceita uma matriz básica de parâmetros para anexar aos comandos HTTPie que você executa:
{" opções_padrão & quot ;: [" Autorização: foobar & quot ;, " - pretty = none & quot ;, " - style = monokai " ]}
Qualquer opção que seja compatível com a interface de linha de comando do HTTPie &’ pode ser incluída. Você pode substituir suas opções padrão definindo-as com um novo valor cada vez que executar HTTPie.
Conclusão
HTTPie é uma ferramenta cheia de recursos que traz APIs HTTP para o seu terminal. É uma alternativa moderna aos itens básicos do Unix, como o curl, que é projetado para uso regular por desenvolvedores e testadores. Embora a sintaxe possa ser complicada às vezes, geralmente é expressiva e memorável.
Vale a pena reservar um tempo para ler a documentação oficial se você estiver procurando aprender mais sobre HTTPie. Todo o desenvolvimento ocorre abertamente no GitHub, com suporte fornecido no Gitter e StackOverflow.
Nenhum comentário