Questão nº 71
Questão de Informática · FGV TJTO 2022 (nº 71)
O técnico em informática Marcos implementou o web service REST obtemPong utilizando Java com framework Spring. O web service obtemPong recebe o parâmetro obrigatório ping.
Observe abaixo o principal trecho do código-fonte de obtemPong:
```
@GetMapping("/api/v1/pong") @ResponseBody
public String obtemPong(@RequestParam String ping) {
return ping;
}
```
Para que o parâmetro ping deixe de ser obrigatório e automaticamente assuma o valor "pong" caso esteja ausente da mensagem de requisição, Marcos deve adicionar à anotação `@RequestParam` do parâmetro ping o argumento:
- A`value = "pong"`;
- B`name = "pong"`;
- C`defaultValue = "pong"`; (alternativa correta)
- D`required = "ping?ping:pong"`;
- E`value = "ping?ping:pong"`.
Resposta comentada
Gabarito Alternativa C
Quando usamos @RequestParam no Spring, estamos indicando que um valor para o parâmetro do nosso método virá da URL da requisição. Por padrão, esses parâmetros são obrigatórios. Para que um parâmetro se torne opcional e receba um valor pré-definido se não for enviado, usamos um atributo específico dentro do @RequestParam.
- (A) Incorreta: O atributo
value(ouname) serve para renomear o parâmetro esperado na URL, não para definir um valor padrão. - (B) Incorreta: O atributo
nameé um alias paravaluee também serve para renomear o parâmetro na URL. Não define um valor padrão. Esta é uma pegadinha, pois "pong" é o valor que queremos como padrão, não o nome do parâmetro. - (C) Correta: O atributo
defaultValueé exatamente para isso: ele define o valor que o parâmetro deve assumir caso não seja fornecido na requisição, tornando-o automaticamente opcional. - (D) Incorreta: O atributo
requiredaceita um valor booleano (trueoufalse) para indicar se o parâmetro é obrigatório. Sefalse, o parâmetro é opcional e seránullse ausente. A sintaxe"ping?ping:pong"não é válida para o atributorequirede não define um valor padrão. - (E) Incorreta: O atributo
valuerenomeia o parâmetro. A sintaxe"ping?ping:pong"não é um nome de parâmetro válido e não define um valor padrão.
Fonte: FGV TJTO 2022 Técnico Judiciário - Informática (Caderno Tipo 1). Reproduzida para fins de estudo.