Estou desenvolvendo um projeto usando Spring Boot. Eu tenho um controlador que aceita solicitações GET .
Atualmente, estou aceitando solicitações para os seguintes tipos de URLs:
mas quero aceitar solicitações usando parâmetros de consulta :
Aqui está o código do meu controlador:
@RequestMapping(value="/data/{itemid}", method = RequestMethod.GET)
public @ResponseBody
item getitem(@PathVariable("itemid") String itemid) {
item i = itemDao.findOne(itemid);
String itemname = i.getItemname();
String price = i.getPrice();
return i;
}
java
rest
spring-boot
Mehandi Hassan
fonte
fonte
@RequestParam
(bom ponto de partida: o guia oficial )Respostas:
Use @RequestParam
fonte
public @ResponseBody item getitem(@RequestParam("data") String itemid){
exige que o parâmetro de consulta de dados esteja sempre presente. Em vez disso, se você usar dessa formapublic @ResponseBody item getitem(@RequestParam Map<String, String> queryParameters){
, os dados serão opcionaisEmbora a resposta aceita por afraisse seja absolutamente correta em termos de uso
@RequestParam
, eu sugiro usar um Optional <>, pois nem sempre é possível garantir que o parâmetro correto seja usado. Além disso, se você precisar de um inteiro ou longo, apenas use esse tipo de dados para evitar a conversão de tipos posteriormente no DAO.fonte
No Spring boot: 2.1.6, você pode usar como abaixo:
@ApiOperation é uma anotação que vem da API do Swagger, é usada para documentar as apis.
fonte
required = true
por padrãoEu também estava interessado nisso e encontrei alguns exemplos no site Spring Boot.
Veja aqui também
fonte