对象内部的 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.
我从 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.