#graphql #apollo-server
#graphql #apollo-сервер
Вопрос:
Я использую apollo graphql и для создания новых данных хочу использовать данные типа ввода. Я нашел документацию об этом https://www.apollographql.com/docs/apollo-server/schema/schema/#input-types но нигде не говорится о том, как вызвать его из решателей. Это мой код:
const { ApolloServer, gql } = require('apollo-server');
var typeDefs=gql`
input CourseInput {
id: Int
title: String
author: String
description: String
topic: String
url: String
}
type Course {
id: Int
title: String
author: String
description:String
topic:String
url: String
}
type Mutation {
createCourse(input: CourseInput): [Course]
}
`;
var coursesData = [
{
id: 1,
title: 'First one',
author: 'Andrew Mead, Rob Percival',
description: 'Learn Node.js',
topic: 'Node.js',
url: 'https://example.com'
},
{
id: 2,
title: 'Node.js, Express amp; MongoDB Dev to Deployment',
author: 'Brad Traversy',
description: 'Learn by example building amp; deploying reah',
topic: 'Node.js',
url: 'https://newbook.com'
},
]
var resolvers= {
Mutation: {
createCourse:(parent,{input})=>{
coursesData = [...coursesData, input];
console.log("input je" ,input)
console.log("coursesdata" ,coursesData)
return coursesData;
}
},
};
const server = new ApolloServer({ typeDefs, resolvers,tracing:true });
// The `listen` method launches a web server.
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
На моем локальном хосте: 4000 я делаю запрос для создания нового курса, подобного этому:
mutation createCourse($input: CourseInput) {
createCourse(input: $input) {
id
title
author
description
topic
url
}
}
{
"input": {
"id": 4,
"title": "ovo je novi kurs",
"author": "delila",
"description": "neki novi description",
"topic": "programming",
"url": "google.com"
}
}
Но результат добавления нового курса всегда равен нулю. Я думаю, что есть проблема с распознавателем, но даже я провел исследование, я не смог найти решение. Если кто-то знает, в чем проблема, пожалуйста, отправьте ответ и помогите мне!
Вы можете посмотреть на изображение
Спасибо
Комментарии:
1. правильно ли resolver регистрирует ввод?
2. Нет. Входная переменная пуста
3. консоль. регистрируйте полные аргументы param / object
4. Мне просто нужно удалить {} из входного параметра, и все в порядке. Дорогой @xadm большое вам спасибо за помощь. Я действительно ценю это