1

Я хочу использовать необязательный параметр в игре 2.4 java. После прочтения docs, я добавил следующие маршруты:Дополнительный параметр с переписыванием url в игре 2.4

GET /api/users/:page controllers.EmployeeController.getUsers(page:Int,pageSize:Int ?= 10) 

Я хочу, чтобы размер страницы будет необязательным в этом URL. URL можно получить доступ, являются:

/api/users/1 
/api/users/1?pageSize=5 

Но проблема в том, что я хочу использовать второй URL, как:

/api/users/1/5 

который в настоящее время дал мне действие не найдено.

Есть ли способ, которым я могу это достичь?

Примечание: Я не хочу создавать отдельный URL-адрес, как упоминалось в @Salem. Я хочу использовать этот единственный URL-адрес в файле маршрутов.

ответ

1

Просто добавьте второе отображение к одному контроллеру (это предполагает, вы хотите использовать «10» в качестве значения PAGESIZE, если никто не предусмотрен)

GET  /api/users/:page    controllers.EmployeeController.getUsers(page:Int,pageSize:Int = 10) 
GET  /api/users/:page/:pageSize controllers.EmployeeController.getUsers(page:Int,pageSize:Int) 

Обратите внимание, что второй параметр, если не является факультативным больше

+0

Спасибо, но я забыл упомянуть, что я не хочу создавать новый маршрут. Есть ли другой путь? – silentprogrammer

+0

Я так не думаю. Вы можете попытаться написать такой фильтр, как [this] (http://stackoverflow.com/a/38873541/1205368), чтобы перезаписать этот конкретный URL-адрес, но это не будет работать с контроллерами Java без какой-либо работы. Также немного перебор. Если у вас есть Nginx/Apache/etc перед Play, вы можете переписать URL-адрес там ... – Salem

+0

@silentprogrammer, что позволяет вам создать другой маршрут? –