Кажется, что я не получаю что-то фундаментальное с графиком.graphql throws неизвестный аргумент error
Я пытаюсь получить пользователя по его идентификатору, который в свою очередь является результатом другого запроса. В этом случае запрос на некоторые данные сеанса.
Я не понимаю, почему возникает ошибка.
Вот мой код:
{
session(key: "558fd6c627267d737d11e758f1ae48cae71fc9b584e2882926ad5470c88d7c3ace08c9c7") {
userId
expires
user(id: userId) {
name
}
}
}
И я получаю
Неизвестный аргумент "ID" на поле "пользователь" типа "Session"
Моя схема выглядит следующим образом:
type Session {
userId: String,
expires: String,
user: User
}
type User {
_id: String
name: String
email: String
firstName: String
lastName: String
}
type Query {
session(key: String!): Session
user(id: String!): User
}
Добавление 23 февраля 2017 года
Прошу прощения за то, что я не был достаточно явным в отношении соответствующих резольверов в своем первоначальном сообщении. Да, я определил свои решители и д. г. запрос работает для сеанса, если я не добавляю пользователей.
Вот мой корень:
{
Query: {
async user(parentValue, args, req) {
let user = await adapters.users.byId(args.id);
return user;
},
async session(parentValue, args, req) {
let session = await adapters.session(args.key);
let userId = session.session.userId;
let expires = session.expires;
return {userId: userId, expires: expires};
}
}
}
Хорошо, я виноват, я думал, что для каждого запроса есть резольверы. Если бы у меня не было резольверов, программа даже сработала бы до этого сообщения об ошибке. Но ради полноты и экспликации я добавлю свои резольверы в код выше. Запрос работает, если я просто запрашиваю сеанс без пользователя. Еще одна вещь: я использую инструменты Graphql для Apollo для определения схемы, поэтому это определение основано на языке типа GraphQL. Взгляните на добавление с 23 февраля 2017 года – LongHike
Я отредактировал ответ, чтобы привести пример для вашего дела – piotrbienias
Большое спасибо. Это работает! – LongHike