Akka HTTP拒绝处理程序未调用

时间:2020-03-25 13:14:42

标签: akka-http

我已经从(这里)[https://doc.akka.io/docs/akka-http/current/routing-dsl/rejections.html]

的帮助下在我的路线中添加了拒绝处理程序

这是我的代码

def TypeSequence(usertype: Type[UserType]) -> Callable[[Iterable[UserType]], Sequence[UserType]]:
    ...

我击中implicit def myRejectionHandler:RejectionHandler = RejectionHandler.newBuilder() .handle { case MissingCookieRejection(cookieName) => val errorResponse = routeResponseMessage.getResponse(StatusCodes.BadRequest.intValue ,ServerMessages.MISSING_COOKIE,JsObject.empty) complete(BadRequest,errorResponse) } .handle { case AuthorizationFailedRejection => val errorResponse = routeResponseMessage.getResponse(StatusCodes.Forbidden.intValue ,ServerMessages.AUTH_FAIL,JsObject.empty) complete((Forbidden, errorResponse)) } .handle { case ValidationRejection(msg, _) => val errorResponse = routeResponseMessage.getResponse(StatusCodes.InternalServerError.intValue ,ServerMessages.VALIDATION_FAILED + msg,JsObject.empty) complete((InternalServerError, errorResponse)) } .handle { case MissingQueryParamRejection(param) => val errorResponse = routeResponseMessage.getResponse(StatusCodes.BadRequest.intValue ,param + " " + ServerMessages.MISSING_PARAM,JsObject.empty) complete((BadRequest, errorResponse)) } .handleNotFound { val errorResponse = routeResponseMessage.getResponse(NotFound.intValue ,ServerMessages.NOT_FOUND,JsObject.empty) complete((NotFound, errorResponse)) }.result() val myExceptionHandler = ExceptionHandler { case _: Exception => extractUri { uri => log.error(s"Request to $uri could not be handled normally") complete(InternalServerError, routeResponseMessage.getResponse(InternalServerError.intValue, ServerMessages.INTERNAL_SERVER_ERROR, JsObject.empty)) } } val route: Route = handleRejections(myRejectionHandler) { handleExceptions(myExceptionHandler) { concat( path("event-by-id") { get { parameters('id.as[String]) { id => //logic here }}} post { path("create-event") { entity(as[Event]) { event => //logic here }} } val bindingFuture = Http().bindAndHandle(route, hostName, port) 时返回的消息是

localhost:8080/blah

但它应该显示我在HTTP method not allowed, supported methods: POST 中给出的自定义消息 我在这里做错了什么?

0 个答案:

没有答案
相关问题