Lição 2

Headers, métodos e corpos

Mapeie opções `-X`, `-H` e `-d` para um modelo claro de requisição HTTP.

A maior parte da conversão de cURL para código gira em torno de três conceitos: método, headers e corpo.

Método

-X ou --request define o método HTTP:

curl -X PATCH https://api.example.com/users/42

Sem -X, cURL normalmente envia GET. Com -d, cURL costuma enviar POST.

Headers

-H ou --header adiciona headers:

curl -H "Accept: application/json" -H "X-Request-Id: demo-1" https://api.example.com

Headers são case-insensitive pelas regras HTTP, mas o código da aplicação deve preservar nomes claros para legibilidade.

Corpo

-d, --data, --data-raw e --data-binary anexam conteúdo ao corpo:

curl -H "Content-Type: application/json" -d '{"name":"Ada"}' https://api.example.com/users

O corpo é apenas bytes. O header Content-Type informa ao servidor como interpretar esses bytes.

Formulário e JSON são diferentes

Estes comandos não são equivalentes:

curl -d "name=Ada&role=admin" https://api.example.com/users
curl -H "Content-Type: application/json" -d '{"name":"Ada","role":"admin"}' https://api.example.com/users

O primeiro é dado em estilo formulário. O segundo é JSON. Um conversor pode traduzir ambos, mas sua aplicação ainda precisa que o servidor espere o mesmo content type.

Voltar à visão geral do curso