Эта проблема была исправлена в GraphQL. * Предварительный выпуск NET.
Пример 1: NonNullGraphType
Поле запроса:
Field<NonNullGraphType<WidgetType>>(
"exception",
resolve: context =>
{
throw new ExecutionError("Something went wrong!");
}
);
Версия 3.4 Ответ:
{
"data": {
"exception": null
},
"errors": [
{
"message": "Something went wrong!",
...
}
]
}
Версия 3.5 Ответ:
{
"errors": [
{
"message": "Something went wrong!",
...
}
],
"extensions": {
...
}
}
Пример 2: Nullable
Поле запроса:
Field<WidgetType>(
"exceptionAndNullable",
resolve: context =>
{
throw new ExecutionError("Something went wrong!");
}
);
Версия 3.4 Ответ:
{
"data": {
"exceptionAndNullable": null
},
"errors": [
{
"message": "Something went wrong!",
"...
}
]
}
Версия 3.5 Ответ:
{
"data": {
"exceptionAndNullable": null
},
"errors": [
{
"message": "Something went wrong!",
...
],
"extensions": {
...
}
}
Примечание в примере 1, data
больше не возвращается в версии 3.5, а в примере 2, ответ в значительной степени неизменен между версиями.