我的路由与此类似:
pathPrefix("api") {
path("login") {
entity(as[LoginRequest]) { login =>
complete { ... }
}
} ~
pathPrefix("persons") {
pathEnd {
get { ctx => ctx.complete(model.getPersons) }
} ~
path("new") {
post {
entity(as[Person]) { person =>
complete { model.addPerson(person).map { _ => StatusCodes.Accepted }
}
}
} ~
path(IntNumber) { id =>
delete {
complete {
model.deletePerson(id).map { _ => StatusCodes.Accepted }
}
}
}
} ~
path("app" / Rest) { path =>
get {
getFromResource("app/%s" format path)
}
}
}
我的问题是错误代码已关闭。
当查询带有无效文档的POST到/ api / persons / new时,我希望得到一个InvalidEntity响应代码,但我得到405:方法不允许,支持:GET。
与/ api / login相同。
如果实体正确,则运行正确的路线。
如果我向/ api / persons / invalidnumber发出DELETE,我得到405,而不是404
如果我为这些路线运行GET,我得到404.也许最后一条路线试图运行 - getFromResource?
有没有办法迫使路线“早日返回”?
例如entity(as[LoginRequest]) { ... } ~ failWithPreviousRejection