ユーザーが呼び出した REST サービスを解析するために、Spray に次のコードがあります。
val route = {
pathPrefix("v0") {
pathPrefix("pets") {
pathEndOrSingleSlash {
pathEnd {
get {
complete("/v0/pets")
}
} ~
get {
complete("/v0/pets/")
}
} ~
parameters('id ?) {
id =>
get {
complete("/v0/pets?id=" + id)
}
}
}
}
}
問題は、期待どおりに動作しないことです。私はコードから次の動作を期待しています:
http://127.0.0.1/v0/pets => /v0/pets
http://127.0.0.1/v0/pets/ => /v0/pets/
http://127.0.0.1/v0/pets?id=1234 = > /v0/pets?id=Some(1234)
しかし、クエリに対して次の結果が得られます。
http://127.0.0.1/v0/pets => /v0/pets
http://127.0.0.1/v0/pets/ => /v0/pets
http://127.0.0.1/v0/pets?id=1234 => /v0/pets