Apidog

Plataforma Colaborativa All-in-one para Desenvolvimento de API

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Como usar o HTTPie em 2024?

HTTPie é uma ferramenta de linha de comando que simplifica a interação com servidores HTTP e APIs. Aprenda a usar o HTTPie em 2024 para fazer requisições, enviar arquivos, gerenciar sessões e mais.

Miguel Oliveira

Miguel Oliveira

Updated on novembro 29, 2024

HTTPie é uma ferramenta de linha de comando que permite interagir com servidores HTTP de uma maneira amigável para humanos. Possui uma sintaxe simples e expressiva, suporta JSON e dados de formulário, lida com autenticação e cabeçalhos, e exibe a saída colorida e formatada. Também possui alguns recursos avançados, como sessões, plugins e proxies, que a tornam ainda mais poderosa e versátil.

Neste post de blog, eu vou mostrar como instalar e usar o HTTPie, e como ele pode ajudá-lo a testar e depurar suas APIs com facilidade e eficiência. Também compartilharei algumas dicas e truques que aprendi ao longo do caminho, e alguns recursos que você pode usar para aprender mais sobre HTTPie.

botão

Como Instalar o HTTPie

O primeiro passo para usar o HTTPie é instalá-lo em seu sistema. O HTTPie é escrito em Python, e você pode instalá-lo utilizando o pip, o gerenciador de pacotes do Python. Para isso, abra seu terminal e execute o seguinte comando:

pip install --upgrade httpie

Isso instalará a versão mais recente do HTTPie em seu sistema, e também atualizará qualquer versão existente, se você tiver uma. Você pode verificar a versão do HTTPie executando:

http --version

Você deve ver algo como isto:

http 2.5.0
HTTPie - uma ferramenta CLI, semelhante ao cURL, para humanos.
https://httpie.io

Se você ver essa saída, parabéns! Você instalou o HTTPie com sucesso e está pronto para usá-lo.

Como Enviar Requisições HTTP com o HTTPie

A sintaxe básica do HTTPie é:

http [flags] [MÉTODO] URL [ITEM [ITEM]]

Onde:

  • flags são argumentos opcionais que modificam o comportamento do HTTPie, como -v para modo verbose, -h para ajuda, ou -f para seguir redirecionamentos.
  • MÉTODO é o método HTTP a ser usado, como GET, POST, PUT, PATCH, DELETE, etc. Se omitido, o HTTPie usa GET por padrão.
  • URL é o URL do servidor HTTP com o qual interagir, como https://example.com/api/users.
  • ITEM é um par chave-valor opcional que especifica os dados da requisição, como name=John para dados de formulário, ou name:=John para dados JSON. Você também pode usar ITEM para especificar cabeçalhos, como User-Agent:HTTPie.

Por exemplo, para enviar uma requisição GET para https://example.com/api/users, você pode simplesmente executar:

http https://example.com/api/users

Isso enviará uma requisição GET para o URL, e exibirá a resposta de maneira colorida e formatada. Você verá algo como isto:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 326
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"146-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

[
    {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane",
        "email": "jane@example.com"
    },
    {
        "id": 3,
        "name": "Bob",
        "email": "bob@example.com"
    }
]

Como você pode ver, o HTTPie exibe a linha de status da resposta, cabeçalhos e corpo de uma maneira clara e legível. Ele também usa cores para destacar diferentes partes da resposta, como verde para cabeçalhos, azul para chaves JSON e amarelo para valores JSON.

Você também pode enviar outros métodos HTTP com o HTTPie, como POST, PUT, PATCH ou DELETE, especificando o método antes da URL. Por exemplo, para enviar uma requisição POST para https://example.com/api/users com alguns dados JSON, você pode executar:

http POST https://example.com/api/users name=John email=john@example.com

Isso enviará uma requisição POST para o URL, com os seguintes dados JSON no corpo da requisição:

{
    "name": "John",
    "email": "john@example.com"
}

Você também pode usar o operador := para especificar valores JSON, como name:="John" ou age:=25. Isso é útil quando você quer enviar valores não string, como números, booleanos, arrays ou objetos.

O HTTPie exibirá a resposta da mesma maneira que antes, mas com um código de status e corpo diferentes. Você verá algo como isto:

HTTP/1.1 201 Created
Connection: keep-alive
Content-Length: 110
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"6e-8a9e8c9f"
Location: /api/users/4
Server: nginx/1.19.6
X-Powered-By: Express

{
    "id": 4,
    "name": "John",
    "email": "john@example.com"
}

Como você pode ver, o HTTPie exibe o código de status da resposta como 201 Created, indicando que um novo recurso foi criado no servidor. Ele também exibe o cabeçalho Location, que aponta para o URL do recurso recém-criado. O corpo da resposta contém a representação JSON do novo usuário.

Você pode usar a mesma sintaxe para enviar outros métodos HTTP, como PUT, PATCH ou DELETE, trocando o nome do método. Por exemplo, para atualizar o nome do usuário com id 4, você pode executar:

http PATCH https://example.com/api/users/4 name=Jack

Isso enviará uma requisição PATCH para o URL, com os seguintes dados JSON no corpo da requisição:

{
    "name": "Jack"
}

O HTTPie exibirá a resposta da mesma maneira que antes, mas com um código de status e corpo diferentes. Você verá algo como isto:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 110
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"6e-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

{
    "id": 4,
    "name": "Jack",
    "email": "john@example.com"
}

Como você pode ver, o HTTPie exibe o código de status da resposta como 200 OK, indicando que o recurso foi atualizado com sucesso. O corpo da resposta contém a representação JSON do usuário atualizado.

Você também pode usar o HTTPie para enviar dados de formulário, utilizando o operador = em vez do operador :=. Por exemplo, para enviar uma requisição POST para https://example.com/api/login com alguns dados de formulário, você pode executar:

http POST https://example.com/api/login username=John password=secret

Isso enviará uma requisição POST para o URL, com os seguintes dados de formulário no corpo da requisição:

username=John&password=secret

O HTTPie exibirá a resposta da mesma maneira que antes, mas com um tipo de conteúdo e corpo diferentes. Você verá algo como isto:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 32
Content-Type: text/plain; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"20-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

Login bem-sucedido. Bem-vindo, John!

Como você pode ver, o HTTPie exibe o tipo de conteúdo da resposta como text/plain, indicando que o corpo da resposta é texto simples. O corpo da resposta contém uma mensagem simples confirmando o login.

Como Inspecionar o Corpo da Resposta e Cabeçalhos com o HTTPie

Uma das grandes características do HTTPie é que ele automaticamente analisa e formata o corpo da resposta e os cabeçalhos, dependendo do tipo de conteúdo. Por exemplo, se a resposta for JSON, o HTTPie a exibirá de maneira bonita e colorida, como vimos antes. Se a resposta for HTML, o HTTPie a exibirá como texto bruto, mas com realce de sintaxe. Se a resposta for uma imagem, o HTTPie a exibirá como dados binários, mas com uma dica do tipo e tamanho da imagem.

Você também pode usar algumas flags para modificar como o HTTPie exibe a resposta. Por exemplo, você pode usar a flag -b ou --body para mostrar apenas o corpo da resposta, sem os cabeçalhos. Você pode usar a flag -h ou --headers para mostrar apenas os cabeçalhos da resposta, sem o corpo. Você pode usar a flag -p ou --print para especificar quais partes da requisição e resposta imprimir, usando os seguintes caracteres:

  • H: Cabeçalhos da requisição
  • B: Corpo da requisição
  • h: Cabeçalhos da resposta
  • b: Corpo da resposta

Por exemplo, para mostrar apenas os cabeçalhos da requisição e o corpo da resposta, você pode executar:

http -p HB https://example.com/api/users

Isso exibirá algo como isto:

GET /api/users HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: example.com
User-Agent: HTTPie/2.5.0

[
    {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane",
        "email": "jane@example.com"
    },
    {
        "id": 3,
        "name": "Bob",
        "email": "bob@example.com"
    }
]

Como você pode ver, o HTTPie exibe os cabeçalhos da requisição e o corpo da resposta, mas não os cabeçalhos da resposta ou o corpo da requisição.

Você também pode usar a flag -j ou --json para forçar o HTTPie a tratar a resposta como JSON, mesmo que o tipo de conteúdo não seja application/json. Isso é útil quando o servidor não envia o tipo correto de conteúdo, ou quando você quer analisar uma resposta não-JSON como JSON. Por exemplo, para analisar uma resposta de texto simples como JSON, você pode executar:

http -j https://example.com/api/hello

Isso exibirá algo como isto:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 13
Content-Type: text/plain; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"d-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

{
    "hello": "world"
}

Como você pode ver, o HTTPie analisa a resposta de texto simples como JSON e a exibe de maneira bonita e colorida.

Você também pode usar a flag -o ou --output para salvar o corpo da resposta em um arquivo, em vez de exibi-lo no terminal. Isso é útil quando você quer baixar um arquivo do servidor, como uma imagem, um PDF ou um arquivo ZIP. Por exemplo, para baixar uma imagem de https://example.com/api/image, você pode executar:

http -o image.jpg https://example.com/api/image

Isso salvará a imagem em um arquivo chamado image.jpg em seu diretório atual. Você também pode usar a flag -d ou --download para gerar automaticamente um nome de arquivo com base na URL e no tipo de conteúdo. Por exemplo, para baixar a mesma imagem, você pode executar:

http -d https://example.com/api/image

Isso salvará a imagem em um arquivo chamado image-20240208-054325.jpg em seu diretório atual, usando a data e hora como sufixo.

Como você pode ver, o HTTPie oferece muitas opções para inspecionar o corpo da resposta e os cabeçalhos, e para salvar a resposta em um arquivo. Você pode usar essas opções para testar e depurar suas APIs, e para verificar o conteúdo e o formato da resposta.

Limitação do HTTPie

HTTPie é uma ferramenta poderosa e amigável para interagir com servidores HTTP e APIs. No entanto, também possui algumas limitações, como:

  • Não suporta protocolos GraphQL, WebSocket ou gRPC, que estão se tornando mais populares para o desenvolvimento web moderno.
  • Não possui uma interface gráfica (GUI) ou uma versão web, que pode ser preferida por alguns usuários que não se sentem confortáveis com o terminal.
  • Não possui recursos integrados para design, documentação, simulação ou teste de APIs, que são essenciais para o desenvolvimento e colaboração de APIs.

Por que você deve usar o Apidog

Apidog é uma plataforma integrada para design de API, depuração, desenvolvimento, simulação e teste. Ela combina as funcionalidades do Postman, Swagger, Mock e JMeter em uma única ferramenta. Você pode querer usar o Apidog se estiver procurando por:

  • Uma solução abrangente e colaborativa para todo o ciclo de vida da API, desde o design até o teste, simulação e documentação.
  • Uma ferramenta que suporte múltiplos protocolos, como HTTP, GraphQL, WebSocket e gRPC.
  • Uma ferramenta que tenha tanto um aplicativo para desktop quanto uma versão web, além de uma interface de linha de comando (CLI).
  • Uma ferramenta que implemente o design de API em primeiro lugar, facilitando a sincronização sem esforço da API, especificações e modificações durante todo o ciclo de vida da API.

Passo 1. Abra o Apidog e clique em “Nova API” para criar uma nova API para testar.

Passo 2. Selecione o método HTTP a ser usado para a API e insira a URL do endpoint.

Passo 3. Digite as informações necessárias, como parâmetros, de acordo com a especificação da API e clique no botão “Enviar” para enviar a requisição da API e obter a resposta.

conclusão

HTTPie é uma ferramenta poderosa e amigável que permite que você se comunique com servidores HTTP e APIs a partir do seu terminal. Tem muitos recursos e opções que facilitam a personalização e formatação de suas requisições e respostas. Você pode usar o HTTPie para testar, depurar e explorar APIs, além de automatizar tarefas e fluxos de trabalho.

Se você deseja usar uma plataforma mais integrada para design de API, depuração, desenvolvimento, simulação e teste, você também pode experimentar o Apidog. O Apidog é uma ferramenta que conecta todo o ciclo de vida da API, desde o design até o teste, simulação e documentação.

Como acessar a API do Claude 3.7 Sonnet e testar usando ApidogTutoriais

Como acessar a API do Claude 3.7 Sonnet e testar usando Apidog

Se você está empolgado com o último lançamento da Anthropic, Claude 3.7 Sonnet, e quer explorar suas capacidades através da API enquanto o testa com o Apidog, você está no lugar certo. 💡Antes de começarmos, deixe-me fazer uma rápida observação: baixe o Apidog gratuitamente hoje e otimize seu processo de teste de API, especialmente para explorar os poderosos recursos do Claude 3.7 Sonnet—perfeito para desenvolvedores que desejam testar modelos de IA de ponta como este!botão Vamos começar com a

@apidog

fevereiro 25, 2025

Como passar o x-API-key no cabeçalho?Tutoriais

Como passar o x-API-key no cabeçalho?

Desvende os segredos da segurança eficaz de APIs, dominando como passar x-API-key nos cabeçalhos. Este guia abrangente revelará a importância desse processo e como ferramentas como o Apidog podem facilitar seus esforços. Continue lendo para garantir que suas interações com a API permaneçam seguras!

Miguel Oliveira

agosto 12, 2024

Como corrigir o erro HTTP 405 Método Não Permitido no PostmanTutoriais

Como corrigir o erro HTTP 405 Método Não Permitido no Postman

O código de erro HTTP 405 ocorre quando você tenta acessar um servidor usando uma chave de API ou token de acesso inválido ou ausente. Neste artigo, veremos mais sobre o erro 405 e como corrigi-lo.

Miguel Oliveira

agosto 11, 2024