#node.js #graphql #apollo
Вопрос:
Предположим, у меня есть следующий запрос на моем интерфейсе React:
query { getResponse { someFieldA someFieldB } }
И мой сервер express-graphql определяет ответ на этот запрос как:
const GetResponseType = new GraphQLObjectType({ name: 'GetResponseType', fields: () =gt; ({ someFieldA: { type: GraphQLBoolean }, someFieldB: { type: GraphQLBoolean }, }) })
Теперь предположим, что мои службы GraphQL определяют getResponse
следующее:
. . . getResponse: { type: GetResponseType, resolve: () =gt; { return { someFieldA: true } } } . . .
Ответ на этот запрос вернет следующее:
{ data: { getResponse: { someFieldA: true, someFieldB: null, } } }
Как я могу избежать someFieldB
здесь значения null, если оно не возвращается getResponse
?
Если это имеет значение, я пытаюсь реализовать переключатель функций, который возвращает объект пары ключ-значение, где ключ является определенной функцией, а значение всегда true
. Если определенная функция есть undefined
, то она отключена. По отдельным причинам я не могу вернуться false
к функциям, которые отключены.
Что я могу здесь сделать? Ожидаемый ответ на этот запрос будет следующим:
{ data: { getResponse: { someFieldA: true, } } }
Комментарии:
1. все запрошенные/запрошенные поля ДОЛЖНЫ быть возвращены … не возвращено [распознавателями] и nullable возвращаются как
null
, поскольку должна быть выдана ошибка not nullable — требования к спецификациям GraphQL … по некоторым «отдельным причинам» [если ложь не возвращена] вы ДОЛЖНЫ принятьnull
s в ответе =gt; обработайте их как gt;false
на FE