2015-07-13 4 views
0

Я хочу использовать один URL с параметрами разница запросов, которые будут обработаны различными контроллерами:Один маршрут с двумя контроллерами

GET/областях controllers.Application.getXTree (от: Строка, до: String)

GET/области controllers.Application.getChildren (ParentID: String)

Теперь у меня есть ошибки на втором маршруте:

Для запроса "GET/области ParentID = f785d5cc-c8f7-4ddf-a611-757c8f91f536? [Отсутствует параметр: от]

Можно ли это сделать?

ответ

0

Нет, это не представляется возможным:

Многие маршруты могут соответствовать один и тот же запрос. Если есть конфликт, используется первый маршрут (в порядке объявления). Routing-priority

Попробуйте это:

GET /areas/:from/:to controllers.Application.getXTree(from: String, to: String) 

GET /areas/:parentId controllers.Application.getChildren(parentId:String) 

Вы могли бы использовать, а

GET /areas/*params   controllers.Application.xTreeOrChildren(params) 

, а затем разобрать params по Application.xTreeOrChildren, но я предпочитаю первое решение.

См. ScalaRouting для получения дополнительной информации.

+0

Я не хочу менять логику url таким образом, он нарушает правила URL-адреса REST (** GET/areas /: id ** - означает получение информации об одной области с id =: id). Да, второе решение - это работы. Я попробовал [Srid router] (https://www.playframework.com/documentation/2.4.x/ScalaSirdRouter), но я столкнулся с некоторыми другими трудностями таким образом, но это возможно. – Artem

Смежные вопросы