Spring REST, опциональные параметры
От: RolandD  
Дата: 20.02.17 03:25
Оценка:
Привет всем,

Как сделать следующее.

Надо поддержать следующее множество запросов:
GET /users?userId=1
GET /users?userId=1&pageNumber=0&pageSize=1000
GET /users?userId=1&addressId=1
GET /users?userId=1&addressId=1&pageNumber=0&pageSize=1000


Причем хотелось бы в своем коде обрабатывать ситуации, что забыли один из pageNumber или pageSize, например:
/users?userId=1&pageSize=1000 (забыли pageNumber)
/users?userId=1&pageNumber=0 (забыли pageSize)

Вижу следующие пути:
1)
@RequestMapping(method = RequestMethod.GET, value= "/users")
HttpServletRequest.getParameterMap()
В этом случае, нужно самому писать парсинг параметров. В принципе ок, но можно ли избежать самостоятельного парсинга строк (
HttpServletRequest.getParameterMap() возвращает Map<String, String[]>)? Может можно что-нибудь вызвать для этого?

2)
@RequestMapping(method = RequestMethod.GET, value ="/invoices", params = {"userId", "pageNumber", "pageSize"})
@RequestMapping(method = RequestMethod.GET, value ="/invoices", params = {"userId", "addressId", "pageNumber", "pageSize"})
Тогда непонятно, как сделать pageNumber и pageSize опциональными.

Заранее спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.