2016-07-12 26 views
0

Ich bin neu im Sprayframework, ich habe zwei Routen mit ähnlicher Funktionalität und nur die letzten Segmentänderungen. Ich habe es mit dem Operator '|' kombiniert. Wie kann ich feststellen, welches letzte Segment ausgewählt wurde?Abrufen des letzten Pfadsegments im Fall der Verwendung der ODER-Bedingung

path("users"/Segment/"viewers_count") { userId => 

} 

path("users"/Segment/"views_count") { userId => 

} 

ich unter Verwendung der kombinierten

path("users"/Segment/("viewers_count" | "views_count")) { userId => 
     //here i want to know if viewers_count OR views_count 
    // based on that I want to pass "viewers" OR "views" to a module 
} 

Wie kann ich das erreichen.

Antwort

3

Es ist ziemlich einfach. Sie können es in eine Map extrahieren.

path("users"/Segment/Map("viewers_count" -> "viewers", "views_count" -> "views")) { (userId, selected) => 
     // here selected variable will contain viewers or views based on the path. 
} 
+0

vielen dank für den code !! – sanjeev

+0

@ user007 Ich benutze Spray/Akka seit 3 ​​Jahren und habe 'Map' noch nie im Routing gesehen. Könnten Sie bitte auf relevante Dokumentation für akka-http verweisen? – expert

+1

@expert hier ist die [Dokumentation] (http://spray.io/documentation/1.2.2/spray-routing/path-directives/patmatcher-dsl/#examples) vom Spray-Routing. atta-http, ich weiß es nicht. –