【发布时间】:2020-07-15 09:33:41
【问题描述】:
按照文档,这是我的异常处理程序 (Kotlin):
@Produces
@Singleton
@Requirements(Requires(classes = [ForbiddenException::class, ExceptionHandler::class]))
class ForbiddenExceptionHandler : ExceptionHandler<ForbiddenException, HttpResponse<*>> {
override fun handle(request: HttpRequest<*>, exception: ForbiddenException): HttpResponse<*> {
return HttpResponse.status<String>(HttpStatus.FORBIDDEN, exception?.message)
}
}
从我的 GraphQL 处理程序中抛出 ForbiddenException 会将消息冒泡到响应正文中,但状态代码始终为 200。
示例响应:
{
"errors": [
{
"message": "Exception while fetching data (/createUser) : FORBIDDEN",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"createUser"
],
"extensions": {
"classification": "DataFetchingException"
}
}
],
"data": null
}
Micronaut 版本:1.3.3 Micronaut GraphQL 版本:1.3.0.RC1
【问题讨论】:
标签: graphql micronaut graphql-java