我是Play Framework的新手,刚刚开始使用play-scala-rest-api-example的第一次体验。我将post包复制为新的用户包,将UserRouter
添加到路由并将UserRepository
附加到Module配置。
一切正常,只是在访问/v1/users
时出现404错误。只有/v1/users/
有效。对于有和没有斜杠的帖子,最后调用索引路由。除了重命名类和对象之外,我没有做任何改动。就像我说的那样,我刚开始玩框架,可能它是一件非常简单的事情。
这里是路线档案:
GET / controllers.HomeController.index
-> /v1/posts api.post.PostRouter
-> /v1/users api.user.UserRouter
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
`
答案 0 :(得分:1)
我找到了遗漏的东西。所以对于任何使用this tutorial并面临同样问题的人。您必须将自定义前缀添加到app/RequestHandler.scala
isREST()
方法。因此handlerForRequest
方法会在结尾处自动添加一个尾部斜杠。
private def isREST(request: RequestHeader) = {
request.uri match {
case uri: String if uri.contains("post") => true
case uri: String if uri.contains("user") => true
case _ => false
}
}
或
private def isREST(request: RequestHeader) = {
request.uri match {
case uri: String if uri.contains("post") | uri.contains("user") => true
case _ => false
}
}
答案 1 :(得分:0)
您的文件应为
GET / controllers.HomeController.index
GET /v1/posts api.post.PostRouter
GET /v1/users api.user.UserRouter
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
- >符号适用于某些您可能现在不需要的特殊情况。 https://www.playframework.com/documentation/2.5.x/ScalaRouting