O técnico em informática Marcos implementou o web service R...
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:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - defaultValue = “pong”;
Olá! Vamos entender essa questão que envolve o conhecimento sobre a criação de web services REST usando o Spring Framework em Java. O Spring é um dos frameworks mais utilizados para o desenvolvimento de aplicações em Java, e ele oferece suporte extenso para a criação de web services com o módulo Spring Web MVC.
O código em questão demonstra a criação de um serviço REST que utiliza a anotação @GetMapping para mapear requisições HTTP GET para o método obtemPong
. A anotação @RequestParam é usada para indicar que um parâmetro da requisição HTTP deve ser vinculado a um parâmetro do método.
Para que o parâmetro ping
seja opcional e tenha um valor padrão, é necessário utilizar o argumento defaultValue na anotação @RequestParam. Isso significa que, se o parâmetro ping
não for fornecido na requisição, ele assumirá automaticamente o valor "pong"
. Portanto, o código correto após a adição deste argumento seria:
@GetMapping("/api/v1/pong")
@ResponseBody
public String obtemPong(@RequestParam(defaultValue = "pong") String ping) {
return ping;
}
As demais alternativas não são apropriadas para essa situação:
- A - value = “pong”; não é correto porque
value
é usado para definir o nome do parâmetro da requisição, não um valor padrão. - B - name = “pong”; também não é correto pelo mesmo motivo que a alternativa A.
- D - required = “ping?ping:pong”; essa não é uma sintaxe válida para qualquer das propriedades na anotação
@RequestParam
. - E - value = “ping?ping:pong”; mais uma vez, isso seria uma tentativa incorreta de atribuir um valor padrão, e também é uma sintaxe inválida.
Portanto, a alternativa C é a única que permite configurar o parâmetro ping
para que ele seja opcional e tenha um valor padrão de "pong"
quando não estiver presente na requisição. Isso é essencial para a construção de APIs flexíveis e resilientes que podem lidar com diferentes cenários de requisição.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
REST(Representational State Transfer, que significa Transferência Representacional de Estado) é um modelo de arquitetura e não uma linguagem ou tecnologia de programação, que fornece diretrizes para que os sistemas distribuídos se comuniquem diretamente usando os princípios e protocolos existentes da Web sem a necessidade de SOAP ou outro protocolo sofisticado.
pela documentação oficial do Spring:
@getMapping é um atalho para o método @RequestMapping(method = RequestMethod.GET), que na verdade se trata do método GET.
@responseBody diz
c-
e automaticamente assuma o valor “pong”
'default' é a palavra magica para atribuicao automatica de valores
Gabarito: C
https://www.baeldung.com/spring-request-param
Um valor padrão para o parâmetro de solicitação pode-se definir um valor padrão para @RequestParam usando o atributo defaultValue:
@GetMapping("/api/foos")
@ResponseBody
public String getFoos(@RequestParam(defaultValue = "test") String id) {
return "ID: " + id;
}
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo