对象内部的 GraphQl 数组对象

GraphQl array object inside object

我从 api 调用 json 来获取 post 的列表。我的问题是在每个 post 对象响应中,我有另一个对象数组用于 post 的类别。如何使用 Graphql 获取数组对象类别?

我尝试了这个但是 return 我出错了

const Cat = new ObjectType({
name: 'CatItem',
description: 'cat',
fields: () => ({


    id: {
        type: new NonNull(ID),
        description: 'cat',
        resolve: (root) => root.id
    },
    slug: {
        type: StringType,
        description: 'cat',
        resolve: (root) => root.slug
    },
    name: {
        type: StringType,
        description: 'cat',
        resolve: (root) => root.name
    },


}),
});

const PostType = new ObjectType({
name: 'PostItem',
description: 'post',
fields: () => ({
    id: {
        type: new NonNull(ID),
        description: 'post',
        resolve: (root) => root.id
    },
    slug: {
        type: StringType,
        description: 'post',
        resolve: (root) => root.slug
    },
    title: {
        type: StringType,
        description: 'post',
        resolve: (root) => root.title
    },
    content: {
        type: StringType,
        description: 'post',
        resolve: (root) => root.content
    },
    categories: {
        type: new List(CatType),
        description: 'post',
        resolve: (root) => root.category
    },
    date: {
        type: StringType,
        description: 'post',
        resolve: (root) => root.date
    },
    authorName: {
        type: StringType,
        description: 'post',
        resolve: (root) => root.display_name
    },
    authorAvatar: {
        type: StringType,
        description: 'post',
        resolve: (root) => root.user_avatar
    },
}),
});

谢谢

您收到该消息是因为您必须告诉 GraphQL 您想要检索 categories 中的哪些字段(子选择)。

您可能正在尝试 运行 类似这样的查询:

{
  post(id: 1) {
    title
    categories
  }
}

但您需要在 categories 上将字段指定为 return(子选择),如下所示:

{
  post(id: 1) {
    title
    categories {
      name
    }
  }
}  

顺便说一下,有一个很棒的工具叫做 GraphiQL,它在开始编写查询时特别有用。您可能想看看中间件 express-graphql.