如何为Graphene Django设置自定义响应结构?

时间:2019-03-15 19:49:19

标签: python django graphene-python

我正在使用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中有一个自定义错误处理程序。我正在寻找类似石墨烯的材料。使用石墨烯可以做到这一点吗?使用中间件还是某种形式的自定义解析器?

0 个答案:

没有答案