2017-01-13 4 views
1

У меня есть одни и те же маршруты в файле маршруты, но их действие отличается, как показаноScala ИГРАТЬ те же маршруты

GET   /counts         controllers.Application.getAllCountsByFeature(features) 
GET   /counts         controllers.Application.getAllCounts() 

Я звоню оба маршрута, как

http://localhost:9000/segments/counts?features=feature_1,feature_2-feature_3 
http://localhost:9000/segments/counts 

Но это не работает. Я хочу, чтобы play распознавал, какой маршрут вызывается на основе строки запроса. Если строка запроса предоставлена, она должна удалять метод getAllCountsByFeature и так далее.

Есть ли способ? Я использую Play 2.5.9

+2

Просто используйте один маршрут, делать другой запрос внутри одного действия – jilen

+0

Я бы рекомендовал используйте 2 маршрута или 1 маршрут и выполните логику внутри контроллера с необязательными параметрами запроса, как указано другими ранее – pedrorijo91

ответ

2

Используйте один маршрут с дополнительным параметром

GET   /counts         controllers.Application.getAllCountsByFeature(features: Option[String]) 

, а затем

def getAllCountsByFeature(features: Option[String]) = Action { 
    features match{ 
    case Some(f) => //.. 
    case None => getAllCounts() 
    } 
} 
Смежные вопросы