Pular para o conteúdo principal

Questão de Engenharia de Software — Desenvolvimento de Software — FUNDATEC 2025

Engenharia de SoftwareDesenvolvimento de Software
Código
qg474975
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação/Ênfase em Programação de Sistemas na Tecnologia Microsoft
A API de uma empresa de benefícios recebe POST/benefícios para criar um novo benefício. A criação é na hora (não vai para fila) e, quando termina, o novo benefício já pode ser consultado por um endereço próprio. De acordo com a RFC 9110 (regras que definem o uso do HTTP), qual é a resposta adequada e dentro da boa prática que a API deve devolver?
  1. A200 OK, sem corpo, porque a criação terminou e nenhum conteúdo adicional é estritamente necessário.
  2. B201 Created, incluindo o cabeçalho Location apontando para a URI do novo recurso e, opcionalmente, o corpo com sua representação.
  3. C204 No Content acompanhado de Location para informar onde obter o recurso criado.
  4. D202 Accepted com Location para acompanhamento do processamento, tratando a criação como assíncrona.
  5. E409 Conflict por padrão para evitar duplicatas, exigindo repetição da requisição com idempotency key.
Revelar gabarito e comentário

GabaritoB — 201 Created, incluindo o cabeçalho Location apontando para a URI do novo recurso e, opcionalmente, o corpo com sua representação.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

HTTP Status Codes para Criação de Recursos (RFC 9110)

Gabarito: letra B. A RFC 9110 estabelece que, ao criar um recurso com sucesso via POST, o servidor deve responder com 201 Created e incluir o cabeçalho Location apontando para a URI do novo recurso. O corpo da resposta pode conter a representação do recurso. Essa é a prática padronizada e boa prática REST.

A questão testa o conhecimento dos códigos de status HTTP mais comuns para operações de criação síncrona.

Criação de recurso via POST (RFC 9110)
  • 1Síncrona (criação na hora)
    • 201 Created
      • Cabeçalho Location (URI do recurso)
      • Corpo opcional (representação)
  • 2Assíncrona (vai para fila)
    • 202 Accepted
      • Location para acompanhamento
  • 3Outros códigos
    • 200 OK (sem criação de recurso)
    • 204 No Content (exclusão, sem corpo)
    • 409 Conflict (conflito/duplicata)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O código 200 OK é usado para respostas bem-sucedidas sem criação de recurso. Quando um novo recurso é criado, o código apropriado é 201, não 200, mesmo que o corpo esteja vazio.

Alternativa B — ✅ Correta ⟵ GABARITO

Conforme a RFC 9110, a resposta para POST que resulta na criação de um novo recurso é o status 201 Created, acompanhado obrigatoriamente do cabeçalho Location com a URI do recurso criado. O corpo pode opcionalmente conter a representação completa do recurso.

Alternativa C — ❌ Incorreta

O código 204 No Content indica sucesso sem conteúdo, mas é usado para operações que não geram retorno (ex.: exclusão bem-sucedida). Para criação de recurso, o 204 é inadequado, pois o cliente espera saber a URI do novo recurso, fornecida pelo Location. A combinação 204 + Location não está alinhada com a RFC; a resposta correta é 201.

Alternativa D — ❌ Incorreta

202 Accepted é reservado para processamento assíncrono (quando a criação é postergada). O enunciado afirma que a criação é síncrona ("na hora, não vai para fila"), portanto 202 não se aplica. Em operações síncronas, o retorno deve ser 201.

Alternativa E — ❌ Incorreta

409 Conflict é usado quando há conflito no estado atual do recurso (ex.: duplicata violando restrição). Entretanto, não é a resposta padrão para criação bem-sucedida. O cenário descrito não menciona conflito; a criação é bem-sucedida. O uso de idempotency key é opcional e não altera o código de resposta adequado.

NÃO CAIA NESSA!

A banca mistura códigos de status comuns, tentando confundir o candidato entre 200 OK (que não gera recurso), 204 (sem corpo) e 202 (assíncrono). A regra de ouro: criação síncrona de recurso sempre retorna 201 Created + Location header.

Gabarito: letra B.

Link permanente: /questoes/qg474975