Подтвердить что ты не робот

Может ли Spring инфраструктура MVC REST принимать строки запроса, а не PathVariables?

Во всех учебниках и статьях, которые я прочитал в отношении Spring 3 дополнений RESTful к Spring MVC, я видел только один способ использования для передачи данных запроса через @PathVariable, так::

@RequestMapping(value="/shops/{name}", method=RequestMethod.GET)
public @ResponseBody Shop getShopInJSON(@PathVariable String name) {
    ...
}

который ответил бы на что-то вроде http://www.example.com/myservlet/shops/{name}, которое могло бы оцениваться до http://www.example.com/myservlet/shops/thebestshoparound.

Мой вопрос заключается в следующем: возможно ли настроить интерфейс RESTful, который принимает запросы на основе классических строк запроса, например. http://www.example.com/myservlet/shops?name=thebestshoparound вместо PathVariables?

Это кажется очень простым вопросом, но я не могу найти его нигде в Интернете.

4b9b3361

Ответ 1

Да, используйте аннотацию @RequestParam, вот пример:

public @ResponseBody Shop getShopInJSON(@PathVariable String name, @RequestParam(value="query", required=false) String query) {
    // do stuff
}