Я разрабатываю проект с помощью Spring Boot. У меня есть контроллер, который принимает запросы GET .
В настоящее время я принимаю запросы на следующие типы URL:
но я хочу принимать запросы с использованием параметров запроса :
Вот код моего контроллера:
@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
Механди Хассан
источник
источник
@RequestParam
(хорошая отправная точка: официальное руководство )Ответы:
Используйте @RequestParam
источник
public @ResponseBody item getitem(@RequestParam("data") String itemid){
требует, чтобы параметр запроса данных всегда присутствовал. Вместо этого, если вы используете его таким образомpublic @ResponseBody item getitem(@RequestParam Map<String, String> queryParameters){
, он делает данные необязательнымиХотя принятый ответ afraisse является абсолютно правильным с точки зрения использования
@RequestParam
, я бы также предложил использовать Optional <>, поскольку вы не всегда можете гарантировать, что используется правильный параметр. Кроме того, если вам нужен Integer или Long, просто используйте этот тип данных, чтобы избежать приведения типов позже в DAO.источник
В Spring boot: 2.1.6 вы можете использовать, как показано ниже:
@ApiOperation - это аннотация, которая поступает из Swagger api, она используется для документирования API.
источник
required = true
по умолчаниюМеня это тоже заинтересовало, и я наткнулся на несколько примеров на сайте Spring Boot.
Смотрите также здесь
источник