Questão de Arquitetura de Software — Arquitetura de Software — FCPC 2026
Arquitetura de Software›Arquitetura de Software
Código
qg675028
Banca
FCPC
Órgão
UFCA
Ano
2026
Nível
Superior
Cargo
Analista de Tecnologia da Informação / Área: Arquitetura e Desenvolvimento de Sistemas – Back-End
Um arquiteto de software está modernizando a documentação de uma aplicação construída com Spring Boot 3. Ele optou por utilizar a biblioteca springdoc-openapi para expor a interface do Swagger conforme os padrões da especificação OpenAPI 3.x. Ao implementar o controlador responsável pela gestão de inventário, ele precisa anotar um método que recupera um item específico pelo seu código identificador (ex: GET /produtos/{codigo}). Considerando as boas práticas e a compatibilidade com a especificação OpenAPI 3.x, assinale a alternativa que apresenta as anotações específicas de documentação do pacote io.swagger.v3.oas.annotations para descrever, respectivamente, a finalidade do endpoint e o detalhamento do parâmetro recebido na URL.
A@Api para a definição do recurso e @ImplicitParam para documentar o código identificador na rota.
B@ApiOperation para descrever a ação do método e @ApiParam para detalhar as restrições do código do produto.
C@Operation para descrever o objetivo do endpoint e @Parameter para fornecer informações detalhadas sobre o identificador do produto.
D@GetMapping para o mapeamento da rota, sendo desnecessário qualquer outro recurso.
Revelar gabarito e comentário▾
GabaritoC — @Operation para descrever o objetivo do endpoint e @Parameter para fornecer informações detalhadas sobre o identificador do produto.
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”.
Anotações OpenAPI 3.x no Spring Boot
Gabarito: letra C. As anotações corretas do pacote io.swagger.v3.oas.annotations para descrever a finalidade do endpoint e o parâmetro da URL são, respectivamente, @Operation e @Parameter. A banca testa a distinção entre as anotações da especificação OpenAPI 3.x (Swagger 3) e as da versão anterior (Swagger 2).
A especificação OpenAPI 3.x (suportada pelo springdoc-openapi) utiliza as anotações do pacote io.swagger.v3.oas.annotations. Para descrever um endpoint (operação), usa-se @Operation; para detalhar um parâmetro (como o {codigo} na URL), usa-se @Parameter. Essas anotações substituem as antigas @ApiOperation e @ApiParam do Swagger 2 (pacote io.swagger.annotations).
Anotação (Pacote io.swagger.v3.oas.annotations)
Finalidade no Endpoint
Detalhamento do Parâmetro na URL
Compatibilidade com OpenAPI 3.x
@Operation
Descreve o objetivo do endpoint (ex.: "Recupera um item do inventário")
—
✅ Nativa da especificação
@Parameter
—
Fornece informações detalhadas sobre o parâmetro {codigo} (tipo, formato, obrigatoriedade)
✅ Nativa da especificação
@ApiOperation (Swagger 2)
Descreve a ação do método
—
❌ Pacote io.swagger.annotations (versão anterior)
@ApiParam (Swagger 2)
—
Detalha restrições do código do produto
❌ Pacote io.swagger.annotations (versão anterior)
@Api (Swagger 2)
Marca controlador como recurso
—
❌ Não descreve endpoint individual
@ImplicitParam
—
Não existe no Swagger 3
❌ Incorreta
@GetMapping (Spring MVC)
Mapeamento de rota HTTP
—
❌ Anotação de framework, não de documentação
Alternativa A — ❌ Incorreta
@Api é uma anotação do Swagger 2 usada para marcar um controlador como recurso, mas não descreve a finalidade do endpoint. @ImplicitParam não existe no Swagger 3; o equivalente correto é @Parameter. A alternativa mistura anotações desatualizadas e incorretas.
Alternativa B — ❌ Incorreta
@ApiOperation e @ApiParam pertencem ao Swagger 2 (io.swagger.annotations) e não ao pacote io.swagger.v3.oas.annotations. Embora ainda possam funcionar com algumas bibliotecas, a questão especifica a versão 3.x e o pacote v3, portanto as anotações corretas são @Operation e @Parameter.
Alternativa C — ✅ Correta ⟵ GABARITO
Exatamente como descrito: @Operation documenta o propósito do endpoint (ex.: "Recupera um item do inventário") e @Parameter detalha o parâmetro {codigo} (ex.: tipo, formato, obrigatoriedade). Ambas fazem parte do pacote io.swagger.v3.oas.annotations e são nativas da especificação OpenAPI 3.x.
Alternativa D — ❌ Incorreta
@GetMapping é uma anotação do Spring MVC para mapeamento de requisições HTTP, não de documentação. A questão pede especificamente anotações de documentação da OpenAPI 3.x, portanto é insuficiente e inadequada.
NÃO CAIA NESSA!
A banca quer que você diferencie as anotações do Swagger 2 (@Api, @ApiOperation, @ApiParam) das da OpenAPI 3.x (@Operation, @Parameter). Lembre-se: o pacote io.swagger.v3.oas.annotations é o novo padrão e exige as anotações atualizadas.