【发布时间】:2021-05-13 20:05:23
【问题描述】:
我是 GraphQL 的新手。我在使用 express-graphql 服务器从 API 获取数组数据时遇到问题,我发现在某处难以解决。这是场景。
我有一个来自 REST API 的 GET 数据,它的响应类似于这样:
{
"id": 1,
"name": "billy",
"foods": [
{
"food":{
"name":"crepes",
"taste": "crunchy"
}
},
{
"food":{
"name":"noodle",
"taste":"spicy"
}
},
]
}
在我的架构中,我已成功获得 id 和 name,我是这样实现的:
const FoodsType= new GraphQLObjectType({
name: 'foods',
fields: () => ({
id:{ type: GraphQLInt },
name:{ type: GraphQLString},
foods: { type: GraphQLArray}
})
});
正如您在上面的代码中看到的那样,我未能获取包含数组数据的食物数据,因为没有像 GraphQLArray 这样的标量类型。
我的问题是我们如何获得包含多个 json 数据 food 的 foods 数据?
【问题讨论】:
-
foods: { type: new GraphQLList(FoodsType) },? graphql.org/graphql-js/type -
那我们应该如何在
foods内部提供多个food对象呢?当food也是对象类型时,我们应该如何定义FoodsType -
in
FoodsType我试着把这个food: {type: new GraphQLObjectType(FoodDetailType)}放,但它得到一个错误 -
为什么对象内部(数组内部)有一个对象,是必需的吗? ...定义它 graphql 方式并在解析器中转换数据而不是仅仅转发?
-
当您使用 express 时,什么是“直接”? ...直接可以使用“REST Link”...然后您需要为每个响应深度级别设置一个类型...或者在返回之前将其定义为将 REST 响应转换为您的需求
标签: rest graphql express-graphql