【发布时间】:2020-07-16 22:36:18
【问题描述】:
我是这样做的
curl http://localhost:9000/vehicle?time=10:10:10&x=2&y=2
Router 中的路由定义如下
override def routes: Routes = {
case GET(p"/" ? q"time=$time" & q"x=${int(x)}" & q"y=${int(y)}") =>
controller.getVehicle(time, x, y)
case GET(p"/"? q"stop_id=${stopId}") =>
controller.getVehicle(stopId)
case GET(p"/delay/"?q"line_id=${lineId}") =>
controller.getDelay(lineId)
}
路由文件看起来像
GET /vehicle transport.TransportController.getVehicle(time: String, x: Int, y: Int)
-> /v1/posts v1.post.PostRouter
-> /vehicle transport.TransportRouter
-> /vehicle/delay transport.TransportRouter
使用动态路由 SIRD 它给了我 [调试] a.ErrorHandler - onClientError: statusCode = 404, uri = /vehicle?time=10:10:10, message =
和静态
GET /vehicle transport.TransportController.getVehicle(time: String, x: Int, y: Int)
我明白了 [调试] a.ErrorHandler - onClientError: statusCode = 400, uri = /vehicle?time=10:10:10, message = Missing parameter: x
哪里出错了?为什么它没有选择剩余的参数?
【问题讨论】:
-
好吧,
TransportController的声明上方没有package controllers行,那么您期望什么?如果您想要有用的答案,请提供一个最小的、可重复的示例:stackoverflow.com/help/minimal-reproducible-example 老实说,如果人们这样做,80% 的问题就会消失。 -
它们在一个包中,我只是没有在此处发布。错误在路由文件中,我修复了它。但无论如何,它仍然给我另一个错误。当我卷曲时。只需要时间而不是 x y
标签: java scala playframework