gpt4 book ai didi

javascript - 使用对象的 GraphQL 字段类型

转载 作者:行者123 更新时间:2023-11-30 20:03:14 26 4
gpt4 key购买 nike

我想我在文档中遗漏了一些东西,但我不确定如何将对象作为具有新 GraphQLObjectType 的类型来处理。我希望设置对来自 this sample data 的天气数据的查询,而且我不确定如何处理嵌套对象。我目前有:

// Creating a Type for the Weather Object
const WeatherType = new GraphQLObjectType({
name: 'Weather',
fields: () => ({
weather: { type: GraphQLObject? },
})
});

我正在寻找具体的查询并设置结构以指定更多选择数据,例如:

// Creating a Type for the Weather Object
const WeatherType = new GraphQLObjectType({
name: 'Weather',
fields: () => ({
weather: {
main: { type: GraphQLString },
// And so on
},
})
});

有这方面的例子吗?

最佳答案

在构建具有嵌套自定义类型的模式时,您只需将字段的类型设置为您创建的其他类型的引用:

const WeatherType = new GraphQLObjectType({
name: 'Weather',
fields: {
id: {
type: GraphQLInt,
}
main: {
type: GraphQLString,
}
description: {
type: GraphQLString,
}
icon: {
type: GraphQLString,
}
}
})

const MainType = new GraphQLObjectType({
name: 'Main',
fields: {
temp: {
type: GraphQLFloat,
}
pressure: {
type: GraphQLFloat,
}
humidity: {
type: GraphQLFloat,
}
tempMin: {
type: GraphQLFloat,
resolve: (obj) => obj.temp_min
}
tempMax: {
type: GraphQLFloat,
resolve: (obj) => obj.temp_max
}
}
})

const WeatherSummaryType = new GraphQLObjectType({
name: 'WeatherSummary',
fields: {
weather: {
type: new GraphQLList(WeatherType),
}
main: {
type: MainType,
}
}
})

将现有的 JSON 响应转换为 GraphQL 架构时要小心——结构差异很容易造成麻烦。例如,您的示例响应中的 main 字段是一个对象,但 weather 字段实际上是一个数组,因此我们必须将其包装在 GraphQLList 指定字段类型时。

关于javascript - 使用对象的 GraphQL 字段类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53157103/

26 4 0
文章推荐: c# - 可以设置RequestValidationMode ="2.0"页面级别吗?
文章推荐: c# - HtmlDecode 不能在 html 属性中使用 Razor MVC
文章推荐: c# - PCL - 对于某些目标,无法从 Func> 转换为 Func