我正在使用Graphene Django,并尝试为响应设置自定义结构。当前,响应就像下面这样:
query {
singleEntity(id: "...") {
id
name
}
}
"data": {
"singleEntity" {
"id": ...,
"name": ...
}
}
但是,我希望收到这样的答复:
query {
singleEntity(id: "...") {
id
name
}
}
"singleEntity" {
"data": {
"id": ...,
"name": ...
},
"statusCode": 200,
"errors": []
}
"singleEntity" {
"data": null,
"statusCode": 404,
"errors": [{ "message": "Not found" }]
}
我知道我可以针对每个查询解析器手动执行此操作;但是,我正在寻找一种更一致的方法。因此,如果解析器引发错误,则解析字段的errors
字段将被填充。如果解析器返回数据,则仅显示没有错误的数据。我可以在Django Rest Framework中执行此操作,因为DRF中有一个自定义错误处理程序。我正在寻找类似石墨烯的材料。使用石墨烯可以做到这一点吗?使用中间件还是某种形式的自定义解析器?