#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