@ Nuxt / Apollo Как я могу удалить "__typeName" из запроса gql - PullRequest
1 голос
/ 04 октября 2019

Я работаю над пакетом nuxt / apollo, но информация о свойстве addTypeName отсутствует. Где должно быть установлено это свойство? Примечание. Все установки работают с @ nuxt / apollo. (импортируется как модуль и т. д.)

Информация о версии:

"@nuxtjs/apollo": "^4.0.0-rc8",

Моя конфигурация apollo в nuxt.config.js:

    apollo: {
    includeNodeModules: false,
    authenticationType: 'Basic',
    defaultOptions: {
      $query: {
        loadingKey: 'loading',
        fetchPolicy: 'cache-and-network'
      }
    },
    clientConfigs: {
      default: {
        httpEndpoint: 'DEFAULT_GRAPHQL_ENDPOINT',
        tokenName: 'apollo-token' // optional
      },
      financial: {
        httpEndpoint: 'NEWS_GRAPHQL_ENDPOINT',
        tokenName: 'apollo-token',
        addTypename: false --> **Is not working**
      }
    }
  }

Моя страница Index.vue:

apollo: {
data: {
  query: gql`
    {
      newsJson(take: 1) {
        key
        *GENERATES __typeName when sending request to Graphql*
      }
    }
  `,
  client: 'financial'
}
}

Мой запрос graphql (через graphiql в Интернете):

{
  newsJson(take:1){
    key
    approve
  }
}

И Ответ :

{
  "data": {
    "newsJson": [
      {
        "key": 2071554,
        "approve": false
      }
    ]
  }
}

Когда я отправляю запрос, __typeName вылетает из-за меня на веб-странице graphql. Как я могу предотвратить добавление свойства __ typeName к запросу?

С наилучшими пожеланиями,

Спасибо

1 Ответ

1 голос
/ 04 октября 2019

InMemoryCache принимает необязательный параметр addTypename, который можно установить на false, чтобы предотвратить это поведение. Таким образом, вы можете сделать что-то вроде:

clientConfigs: {
  default: {
     ...
     inMemoryCacheOptions: {
       addTypename: false,
     },
  },
}

Однако, это крайне нежелательно , чтобы сделать это. Поле __typename вместе с полем id / _id используется для генерации ключа для отдельного узла в кэше. См. здесь для получения дополнительной информации. Удаление __typename, скорее всего, приведет к ошибкам и непредвиденному поведению в вашем приложении, и делать это не следует.

...