получить значение null для @PathParam с помощью springboot - PullRequest
0 голосов
/ 25 октября 2018

Я новичок в веб-сервисах, использую Spring-Boot для создания веб-сервисов, в то время как, отдавая запрос с http://localhost:8085/user/30?name=abc,, я получаю нулевое значение для свойства id.

 @GetMapping(value="{id}", produces = MediaType.APPLICATION_JSON_VALUE)
  public String  getUser(@PathParam("id") Long id,
                    @QueryParam("name") String name){
System.out.println(" Got id by path param : "+ id + " And Got name using Query Param " +name);
return " Got id by path param : "+ id + " And Got name using Query Param " +name;
 }

отредактировано для добавления скриншота.

скриншот взято с Почтальона Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Я заметил, что вы смешиваете Jax-RS аннотацию с Spring аннотацией

Попробуйте, и это решит вашу проблему

@GetMapping(value="{id}", produces = MediaType.APPLICATION_JSON_VALUE)
public String  getUser(@PathVariable("id") Long id,
        @RequestParam("name") String name){
    System.out.println(" Got id by path param : "+ id + " And Got name using Query Param " +name);
    return " Got id by path param : "+ id + " And Got name using Query Param " +name;
}
0 голосов
/ 25 октября 2018

Для переменной id необходимо использовать аннотацию @ PathVariable , а для параметра name - @RequestParam.

Вот полное рабочее решение:

@RestController
@RequestMapping("/user")
public class UserController {

  @GetMapping("/{id}")
  public String getUser(@PathVariable Long id, @RequestParam String name) {
    System.out.println(" Got id by path param : " + id + " And Got name using Query Param " + name);
    return " Got id by path param : " + id + " And Got name using Query Param " + name;
  }

}

Подробнее см. здесь .

Теперь, когда вы делаете запрос

$ curl http://localhost:8085/user/30?name=abc

, вы получаете ответ:

 Got id by path param : 30 And Got name using Query Param abc
0 голосов
/ 25 октября 2018

Вам нужно использовать @PathVariable, потому что вы используете spring-rest, а не @PathParam, то есть JAX-RS аннотация

@GetMapping(value="{id}", produces = MediaType.APPLICATION_JSON_VALUE)
public String  getUser(@PathVariable("id") Long id,
                @QueryParam("name") String name){
    System.out.println(" Got id by path param : "+ id + " And Got name using Query Param " +name);
    return " Got id by path param : "+ id + " And Got name using Query Param " +name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...