使用GraphQL.NET,我LoginPayload
为这样的突变定义了一个不可为空的返回类型(例如):
type MyMutation {
login(input: LoginInput!): LoginPayload!
}
在 C# 中,它看起来像这样:
FieldAsync<NonNullGraphType<LoginPayloadType>>(
"login",
arguments: new QueryArguments(
new QueryArgument<NonNullGraphType<LoginInputType>> { Name = "input" }),
resolve: async context =>
{
//...
});
基于此架构定义,客户端期望响应数据永远不会为空。但是,如果在解析器中抛出异常,GraphQL.NET 会这样响应:
{
"data": {
"login": null
},
"errors": [
{
"message": "GraphQL.ExecutionError: some exception thrown",
...
}
]
}
当出现错误时,如何配置 GraphQL.Net 以排除该data
属性,使其看起来像这样?
{
"errors": [
{
"message": "GraphQL.ExecutionError: some exception thrown",
...
}
]
}