Мутация GraphQL в поле id

У меня есть схема GraphQL под названием Производитель автомобиля, которая имеет два поля: id и name. То, что я пытаюсь выполнить с помощью GraphiQL, - это вставить несколько данных в схему, но мне нужно изменить оба упомянутых поля.

Есть ли способ вставить желаемое значение в поле id?

Вы можете создать в своей схеме мутацию, что-то вроде addManufacturer(id: ID!, name: string!). Затем вы можете выполнять запросы mutation. graphql.org/learn/queries/#mutations

arian 22.10.2018 16:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
1
333
1

Ответы 1

Почему вы хотите модифицировать id? Для использования их в качестве индексов? Например, id: 1, id: 2 и так далее? Если это так, на мой взгляд, у вас должно быть что-то вроде globalIdField от graphql-relay. Не изменяйте эти ids самостоятельно. Например:

import { GraphQLObjectType, GraphQLFloat } from 'graphql';
import { globalIdField } from 'graphql-relay';

export default new GraphQLObjectType({
  name: 'Car anufacturer',
  description: 'desc',
  fields: () => ({
    id: globalIdField('CarManufacturer'),
    title: {
      type: GraphQLString,
      resolve: async obj => obj.title,
    },
  }),
});

Таким образом, у вас будут уникальные идентификаторы, и вы можете включить эти идентификаторы на ObjectId, например, для использования с MongoDB.

Если вы хотите изменить эти значения по какой-либо другой причине, вам нужно создать Mutations, как сказал @arian.

Надеюсь, я вам чем-то помог :)

Причина, по которой я хочу изменить идентификаторы, заключается в том, что я передаю данные из проекта, в котором используются идентификаторы.

vchan 25.10.2018 08:06

Другие вопросы по теме