Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — Geral — VUNESP 2026

TI - Desenvolvimento de SistemasGeral
Código
vu169379
Banca
VUNESP
Órgão
FAPESP
Ano
2026
Cargo
Ana Sist ( )

POST /produtos HTTP/1.1

Host: exemplo.com

Accept: application/json

Content-Type: application/json

Content-Length: 112

 

{

CodigoFabricante : XYZ123 ,

Nome : Relogio Digital ,

Categoria : Eletronicos ,

Preco : 180.00

}

Considere a seguinte requisição HTTP para um endpoint de uma API REST:

   

Considerando as convenções desse tipo de API, assinale a alternativa correta.

  1. ASe o recurso correspondente ao cadastro do produto de código de fabricante "XYZ123" não for encontrado no servidor, espera-se uma resposta com código de status 404 Not Found.
  2. BSe a requisição for processada com sucesso, espera- se uma resposta com código de status 201 Created.
  3. CO conteúdo JSON do corpo da requisição apresenta erro de sintaxe, ocasionado resposta com código de status 400 Bad Request.
  4. DEspera-se que seja retornada uma resposta cujo corpo contenha um array de objetos JSON que representem produtos que atendam a pelo menos um dos critérios informados, ou seja, código do fabricante igual a "XYZ123" , nome igual a "Relogio Digital" , categoria igual a "Eletronicos" ou preço igual a 180,00.
  5. EA requisição propõe a alteração parcial de um recurso já existente no servidor, correspondente ao cadastro de produto identificado pelo código de fabricante "XYZ123" , com alteração dos atributos "Nome" , "Categoria" e "Preco".
Revelar gabarito e comentário

GabaritoB — Se a requisição for processada com sucesso, espera- se uma resposta com código de status 201 Created.

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”.

REST: métodos HTTP e códigos de status

Gabarito: letra B. A requisição POST /produtos com corpo JSON é uma operação de criação de recurso; quando processada com sucesso, a convenção REST determina a resposta com o código de status 201 Created (RFC 9110). As demais alternativas confundem o método POST com GET, PUT/PATCH ou apresentam leituras incorretas do corpo JSON.

O que está em jogo aqui é o mapeamento entre os métodos HTTP e os códigos de status em uma API REST. O método POST é usado para criar um novo recurso no servidor. Quando a criação é bem-sucedida, o servidor deve responder com 201 Created, indicando que o recurso foi criado e, geralmente, incluindo no corpo da resposta uma representação do novo recurso (com o Location header apontando para a URI do recurso criado). Esse é um dos códigos de status mais característicos de APIs REST e cai com frequência em provas.

Vamos entender cada código mencionado nas alternativas:

  • 200 OK: resposta genérica de sucesso, usada quando a requisição foi processada com sucesso e o corpo da resposta contém o resultado. É o código padrão para GET, PUT e DELETE bem-sucedidos.

  • 201 Created: resposta específica para operações de criação (POST ou PUT com criação). Indica que um novo recurso foi criado no servidor.

  • 404 Not Found: indica que o recurso solicitado não existe no servidor. É típico de GET/PUT/DELETE quando a URI não corresponde a nenhum recurso.

  • 400 Bad Request: indica que a requisição está malformada — por exemplo, JSON inválido, campos obrigatórios ausentes, ou tipos de dados incorretos.

A pegadinha desta questão está em confundir o método POST com GET ou com operações de atualização. O candidato que lê rapidamente pode achar que a requisição busca um produto (GET) ou altera parcialmente um recurso (PATCH), mas o verbo POST + o caminho /produtos (sem identificador) deixa claro que se trata de criação de um novo produto.

Outro ponto que merece atenção: o corpo JSON apresentado não tem erro de sintaxe. Embora as chaves não estejam entre aspas duplas (o que é obrigatório no JSON padrão), a banca considerou o JSON válido — provavelmente por se tratar de uma representação simplificada. Na prática, um JSON com chaves sem aspas é inválido, mas a alternativa C afirma que há erro de sintaxe e que isso geraria 400 Bad Request; como a banca não considerou esse erro, a alternativa C está incorreta. Se o JSON fosse realmente inválido, a resposta seria 400, mas a questão não adota essa leitura.

Guarde a relação entre método e código de status: POST → 201 Created é a assinatura clássica de criação em REST. É nessa relação que as alternativas se dividem.

1POST
Cria recurso
201 Created
2GET
Busca recurso
200 OK
404 Not Found
3PUT/PATCH
Altera recurso
200 OK
4DELETE
Remove recurso
200/204 OK
5Erro de requisição
400 Bad Request
Métodos HTTP × códigos de status
LEVELsoulevel.com.br
Métodos HTTP × códigos de status: POST (Cria recurso, 201 Created); GET (Busca recurso, 200 OK, 404 Not Found); PUT/PATCH (Altera recurso, 200 OK); DELETE (Remove recurso, 200/204 OK); Erro de requisição (400 Bad Request)

Alternativa A — ❌ Incorreta

A alternativa afirma que, se o recurso não for encontrado, espera-se 404 Not Found. Isso seria verdade se a requisição fosse um GET /produtos/XYZ123 (busca de um recurso específico). Mas aqui temos um POST /produtos, que cria um novo recurso — não busca um existente. O 404 não se aplica a uma operação de criação; se o servidor não encontrar algo, seria mais provável um 409 Conflict (se o produto já existir) ou 422 Unprocessable Entity (se houver erro de validação). O 404 é típico de GET, PUT ou DELETE quando a URI não existe.

Alternativa B — ✅ Correta ⟵ GABARITO

A requisição é um POST para /produtos, com corpo JSON contendo os dados do produto. Em REST, POST é o método para criar um novo recurso. Quando a criação é bem-sucedida, o código de status padrão é 201 Created (RFC 9110, seção 15.3.3). A alternativa B espelha exatamente essa convenção: "Se a requisição for processada com sucesso, espera-se uma resposta com código de status 201 Created." É a resposta correta.

Alternativa C — ❌ Incorreta

A alternativa afirma que o corpo JSON tem erro de sintaxe e que isso geraria 400 Bad Request. De fato, um JSON com chaves sem aspas duplas é tecnicamente inválido (a especificação JSON exige aspas duplas nas chaves). No entanto, a banca não considerou esse erro — o corpo foi tratado como válido para fins da questão. Além disso, mesmo que houvesse erro de sintaxe, o código seria 400 Bad Request, mas a alternativa C está incorreta porque a premissa do erro de sintaxe não foi adotada pela banca. Se você marcar C, estará caindo na pegadinha de "achar" um erro onde a questão não vê.

Alternativa D — ❌ Incorreta

A alternativa descreve uma resposta que seria típica de um GET com parâmetros de busca (query string ou filtros), retornando um array de produtos que atendam aos critérios. Mas a requisição é um POST de criação — não uma busca. O POST /produtos cria um único produto; a resposta esperada é o recurso criado (ou apenas o status 201), não uma lista de produtos. A alternativa confunde o método POST com GET e o conceito de criação com o de consulta.

Alternativa E — ❌ Incorreta

A alternativa afirma que a requisição propõe a alteração parcial de um recurso existente. Isso seria o papel do método PATCH (alteração parcial) ou PUT (alteração total). O POST, por definição, é para criar um novo recurso — não para alterar um existente. Além disso, a URI /produtos não contém um identificador (como /produtos/XYZ123), o que reforça que se trata de criação, não de atualização de um recurso específico. A alternativa E troca o método POST por PATCH/PUT.

NÃO CAIA NESSA!

A banca explora a confusão entre os métodos HTTP. O candidato que lê o corpo com CodigoFabricante e pensa "isso é uma atualização" marca E; o que pensa "vou buscar esse produto" marca A ou D. Mas o verbo POST + a URI /produtos (sem ID) só pode significar criação. Decore a tríade: POST → 201 Created, GET → 200 OK, PUT/PATCH → 200 OK, DELETE → 200/204. Com esse mapa, você elimina as alternativas erradas de imediato.

Gabarito: letra B

Link permanente: /questoes/vu169379