Создайте строку с помощью GraphQL

#javascript #node.js #graphql #graphiql

#javascript #node.js #graphql #graphiql

Вопрос:

Я пытаюсь создать мутацию, чтобы вставить запись в project запрос, но ответ на мутацию равен нулю. Когда я запускаю project запрос после мутации, я вижу те же данные, что и раньше, но не обновленные данные. Как мне это исправить?

запрос проекта (запрос):

 {
  project(id:"1") {
    issues {
      id,
      title,
      description
    }
  }
}
  

запрос проекта (ответ):

 {
  "data": {
    "project": {
      "issues": [
        {
          "id": "1",
          "title": "Issue One",
          "description": ""
        },
        {
          "id": "2",
          "title": "Issue Two",
          "description": ""
        },
        {
          "id": "4",
          "title": "Issue Four",
          "description": "This is issue 4"
        }
      ]
    }
  }
}
  

Мутация для добавления записи в проект:

 mutation {
  createIssue(input: {
    projectId: "1",
    title: "My Issue",
    description: "Missing Issue",
    clientMutationId: "1234"
  }) {
    clientMutationId,
    issue {
      description,
      id,
      title
    }
  }
}
  

Ответ:

 {
  "data": {
    "createIssue": null
  }
}
  

Комментарии:

1. это зависит от того, что находится внутри createIssue resolver, можете ли вы поделиться этим?

2. Я не разработал распознаватель. Новое в GraphQL.. createIssue имеет те же типы, что и упомянутые в запросе. Я не был уверен, как написать распознаватель в GraphQL

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

4. Я перефразирую вопрос и обновлю его. Я делаю это исключительно только в GraphQL, и никакой JS не задействован.. Просто пытаюсь придумать способ вставить недостающую запись.

5. это не средство проверки, это «клиент graphql»… клиент, разговаривающий с сервером / API … node.js / сервер apollo, отвечает на запросы с помощью распознавателей… ваш (или не ваш, если вы не несете ответственности за серверную часть) распознаватель возвращает ответ, от которого полностью зависит то, что возвращается… решатель … проверьте документы API / спросите автора решателя, почему он не работает для этого запроса / мутации

Ответ №1:

проблема не в вас, чтобы объяснить это упрощенным способом: на серверной createIssue части и issues обрабатываются разными функциями (преобразователями), что означает, что как потребитель API вы ничего не можете сделать, чтобы изменить их ответ. проверьте, действительны ли у вас GraphQL query и mutation (GraphQL IDE — вы можете использовать этот инструмент), и если они есть, проблема в серверной части

Комментарии:

1. Есть ли способ вернуть созданный объект с запросом, который я отправил в createIssue