HTTP 201 Created

Resposta de sucesso para criação: um novo recurso agora existe, e Location informa onde.

O que significa o HTTP 201

HTTP 201 Created é retornado quando uma requisição — quase sempre um POST ou PUT — cria com sucesso um novo recurso no servidor. APIs REST o usam para distinguir "algo novo agora existe" do sucesso genérico 200.

Uma resposta 201 adequada inclui um cabeçalho Location com a URL do recurso recém-criado, e frequentemente ecoa o objeto criado no corpo para que o cliente não precise de um GET de acompanhamento.

Causas comuns de respostas 201

  • Uma requisição POST criou um registro, arquivo ou conta.
  • Uma requisição PUT criou um recurso na URL exata fornecida pelo cliente.
  • Um endpoint de lote terminou de criar um recurso primário sincronamente.

Boas práticas para desenvolvedores

  • Defina o cabeçalho Location para a URL canônica do novo recurso.
  • Retorne a representação criada (com seu id atribuído pelo servidor) no corpo para poupar aos clientes uma ida e volta extra.
  • Se a criação está enfileirada em vez de concluída, retorne 202 Accepted em vez disso.
  • POSTs idênticos repetidos criando duplicatas? Considere chaves de idempotência e responda 200/409 para repetições.

Exemplo de resposta

HTTP/1.1 201 Created
Location: /api/users/1024
Content-Type: application/json

{"id":1024,"name":"New user"}

Perguntas frequentes

Qual é a diferença entre 200 e 201?

Ambos significam sucesso, mas 201 especificamente informa ao cliente que um novo recurso foi criado. 200 apenas significa que a requisição foi processada.

O cabeçalho Location é obrigatório com 201?

É fortemente recomendado: aponta para a URL do recurso recém-criado para que os clientes possam buscá-lo ou vinculá-lo.

Quando uma API deve retornar 202 em vez de 201?

Quando a criação acontece de forma assíncrona — 202 significa que a requisição foi aceita mas o recurso ainda não existe.