Você já se perguntou o que uma API pode fazer antes de começar a usá-la? Você quer saber quais métodos, cabeçalhos e parâmetros são suportados por um endpoint específico? Neste post, mostraremos como usar o método HTTP OPTIONS para explorar qualquer API. O método HTTP OPTIONS é um dos métodos menos conhecidos, mas muito úteis do protocolo HTTP. Ele permite solicitar informações sobre as opções de comunicação disponíveis para um determinado recurso. Em outras palavras, permite que você pergunte a uma API o que ela pode fazer e como pode fazer isso.
Usar o método HTTP OPTIONS pode economizar muito tempo e problemas ao trabalhar com APIs. Ele pode ajudá-lo a evitar erros, depurar problemas e otimizar suas requisições. Também pode ajudá-lo a descobrir novos recursos ou funcionalidades que você pode não estar ciente.
O que é o Método HTTP OPTIONS?
Antes de mergulharmos nos detalhes de como usar o método HTTP OPTIONS, vamos primeiro entender o que é e como funciona. O método HTTP OPTIONS é um dos nove métodos padrão do protocolo HTTP, junto com GET, POST, PUT, PATCH, DELETE, HEAD, TRACE e CONNECT. Cada método tem um propósito e um significado específicos, e são usados para realizar diferentes ações em um recurso.
O método HTTP OPTIONS é usado para solicitar informações sobre as opções de comunicação disponíveis para um determinado recurso. Um recurso pode ser qualquer entidade que pode ser identificada por um URI (Identificador Uniforme de Recurso), como uma página da web, uma imagem, um arquivo ou um endpoint de API. Por exemplo, o URI https://api.example.com/users/1 representa um recurso que corresponde a um usuário com o ID 1 na API do example.com.
Quando você envia uma requisição HTTP OPTIONS para um recurso, está essencialmente perguntando ao servidor: “O que posso fazer com este recurso?”. O servidor responderá com uma resposta HTTP que contém informações sobre as opções disponíveis para aquele recurso. As informações são geralmente fornecidas na forma de cabeçalhos HTTP, como Allow, Accept, Content-Type, etc.

Quando um navegador da web faz uma solicitação de origem cruzada, ele primeiro enviará uma solicitação preliminar usando o método HTTP OPTIONS para o servidor. A solicitação preliminar é usada para verificar se o servidor permite que a solicitação real seja feita. O servidor responderá com uma resposta HTTP que contém cabeçalhos relacionados ao CORS, como Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers, etc. Se a resposta preliminar indicar que a solicitação real é permitida, o navegador prosseguirá para enviar a solicitação real. Caso contrário, o navegador abortará a solicitação e reportará um erro.
Como usar o método http option
O método HTTP OPTIONS é usado para solicitar informações sobre as opções de comunicação para uma determinada URL ou servidor. Ele pode ser usado para verificar quais métodos são permitidos, quais cabeçalhos são suportados ou se o CORS está habilitado. Para usar o método HTTP OPTIONS, você pode enviar uma solicitação com a palavra-chave OPTIONS seguida da URL ou um asterisco (*) para se referir ao servidor inteiro. Por exemplo:
OPTIONS /index.html HTTP/1.1
OPTIONS * HTTP/1.1
O servidor responderá com um código de status e um cabeçalho Allow que lista os métodos permitidos. Ele também pode incluir outros cabeçalhos, como Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers e Access-Control-Max-Age para fins de CORS. Por exemplo:
HTTP/1.1 200 OK
Allow: GET, HEAD, POST, OPTIONS
Access-Control-Allow-Origin: https://foo.example
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
Access-Control-Max-Age: 86400
Você pode usar uma ferramenta como Apidog para enviar uma solicitação OPTIONS e ver os cabeçalhos de resposta.
Como Enviar uma Solicitação HTTP OPTIONS Usando Apidog?
Agora que temos uma compreensão básica do que é o método HTTP OPTIONS e o que ele faz, vamos ver como podemos usá-lo para explorar qualquer API. Para isso, usaremos Apidog, uma ferramenta baseada na web que permite interagir com qualquer API de maneira simples e intuitiva. Você pode usar o Apidog para enviar requisições, visualizar respostas e inspecionar cabeçalhos. Você também pode usá-lo para gerar trechos de código, documentação e casos de teste para qualquer API.
Para enviar uma solicitação HTTP OPTIONS usando Apidog, siga estas etapas:
Passo 1: Abra o Apidog e crie uma nova solicitação.

Passo 2: Selecione o método OPTIONS no menu suspenso de métodos. Isso informará ao Apidog para enviar uma solicitação HTTP OPTIONS para a URL que você inseriu.

Passo 3: Insira o URI do recurso que você deseja explorar no campo de entrada do URI e clique no botão Enviar ou pressione Ctrl+Enter. Isso enviará a solicitação para o servidor e exibirá a resposta na seção de resposta.

Inspecione os cabeçalhos e o corpo da resposta para ver as informações sobre as opções de comunicação disponíveis para o recurso. Você também pode usar o campo de entrada de filtro para buscar cabeçalhos ou valores específicos.
Que Informações Você Pode Obter de uma Resposta HTTP OPTIONS?
Quando você envia uma solicitação HTTP OPTIONS para um recurso, pode obter muitas informações sobre as opções de comunicação disponíveis para aquele recurso. As informações geralmente são fornecidas na forma de cabeçalhos HTTP, como Allow, Accept, Content-Type, etc. Aqui estão alguns dos cabeçalhos comuns e o que eles significam:
- Allow: Este cabeçalho lista os métodos HTTP que são permitidos para o recurso. Por exemplo, se a resposta contiver Allow: GET, POST, HEAD, isso significa que você pode usar os métodos GET, POST ou HEAD para interagir com o recurso.
- Accept: Este cabeçalho lista os tipos de mídia que são aceitáveis para o recurso. Por exemplo, se a resposta contiver Accept: application/json, application/xml, isso significa que você pode solicitar o recurso em formato JSON ou XML.
- Content-Type: Este cabeçalho indica o tipo de mídia do corpo da resposta. Por exemplo, se a resposta contiver Content-Type: application/json, significa que o corpo da resposta está em formato JSON.
- Access-Control-Allow-Origin: Este cabeçalho indica quais origens têm permissão para acessar o recurso. Por exemplo, se a resposta contiver Access-Control-Allow-Origin: *, isso significa que qualquer origem pode acessar o recurso. Se a resposta contiver Access-Control-Allow-Origin: https://example.com, isso significa que apenas a origem https://example.com pode acessar o recurso.
- Access-Control-Allow-Methods: Este cabeçalho indica quais métodos são permitidos para o recurso. Por exemplo, se a resposta contiver Access-Control-Allow-Methods: GET, POST, OPTIONS, isso significa que você pode usar os métodos GET, POST ou OPTIONS para acessar o recurso.
- Access-Control-Allow-Headers: Este cabeçalho indica quais cabeçalhos são permitidos para o recurso. Por exemplo, se a resposta contiver Access-Control-Allow-Headers: Content-Type, Authorization, isso significa que você pode usar os cabeçalhos Content-Type ou Authorization para acessar o recurso.
- Access-Control-Max-Age: Este cabeçalho indica quanto tempo a resposta preliminar pode ser armazenada em cache pelo navegador. Por exemplo, se a resposta contiver Access-Control-Max-Age: 86400, isso significa que o navegador pode armazenar a resposta preliminar em cache por 86400 segundos (24 horas).
Esses são alguns dos cabeçalhos comuns que você pode obter de uma resposta HTTP OPTIONS. Pode haver outros cabeçalhos que são específicos da API ou do recurso que você está explorando. Você pode usar o Apidog para inspecionar todos os cabeçalhos e seus valores, e aprender mais sobre eles.
Conclusão
Neste post do blog, mostrei como usar o método HTTP OPTIONS para explorar qualquer API. O método HTTP OPTIONS é uma ferramenta poderosa e útil que pode ajudá-lo a descobrir as capacidades e recursos de qualquer API. Ao usar o método HTTP OPTIONS, você pode economizar tempo e problemas ao trabalhar com APIs. Você também pode aprender novas coisas e otimizar suas requisições.
Eu também mostrei como usar Apidog, uma ferramenta baseada na web que permite que você interaja com qualquer API de maneira simples e intuitiva.