【发布时间】:2015-12-22 14:13:25
【问题描述】:
我尝试允许 API 有两种使用方式:要么提供查询作为 URI 的一部分,要么提供它作为参数。
端点
/search/myQuery 等同于/search?query=myQuery
两者都应该返回相同的结果。
代码
这是我目前正在使用的实现。不过感觉有点笨拙,因为很多代码需要重复。
path("search") {
parameter('query) { term =>
get {
complete { performSearch(term) }
}
} ~
path("search" / Segment) { searchTerm =>
get {
complete { performSearch(term) }
}
}
问题
在 Spray 中是否有更 DRY 的方式来表达这种行为?
【问题讨论】: