Я создаю сервер Apollo. У меня есть одна простая конечная точка, связывающаяся с Mongo. Есть сборник объявлений.
export const typeDefs = gql`
type Query {
announcements: [Announcement]
announcementsByAuthor(author: String!): [Announcement]
}
type Announcement {
_id: ID!
msg: String!
author: String!
title: String
}
`;
export const resolvers = {
Query: {
announcements: () => {
return new AnnouncementController().getAnnouncements();
},
announcementsByAuthor: (author: string) => {
console.info('RESOLVER: ', author);
return new AnnouncementController().getAnnouncementsByAuthor(author);
}
},
}
В моем интерфейсе graphiql запрос объявлений работает правильно:
{
announcements {
msg
author
}
}
Похоже, что запрос announcementsByAuthor не принимает строковый аргумент ни из переменной, ни при жестком кодировании в запросе.
query($author: String!){
announcementsByAuthor(author: $author) {
msg
author
}
}
Переменные:
{
"author":"Nate"
}
Я вышел из резолвера, и вместо указанного значения переменной автора передается пустая строка. Я новичок в graphql, и я надеюсь, что кто-то сможет просветить меня относительно того, что, я уверен, является простой оплошностью.
Угадайте так: launchpad.graphql.com/w5v1rqj1nz
Я вижу проблему. Аргументы входят во второй аргумент резолвера.





Попробуйте вместо этого:
announcementsByAuthor: (doc, {author}) => {
Я сожалею, что могу дать только один положительный голос. Спасибо.
Допустимо ли указывать аргументы без имени запроса?