O técnico em informática Marcos implementou o web service R...

Próximas questões
Com base no mesmo assunto
Q1933773 Programação
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:
Alternativas

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