我正在将一个GraphQL包装器放在现有的REST API上,如Zero to GraphQL中所述,在30分钟内完成.我有一个产品的API端点,其中一个属性指向嵌套对象:
// API Response
{
entity_id: 1,
nested_object: {
key1: val1,
key2: val2,
...
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以定义模式,以便我可以获得整个嵌套对象而无需显式定义嵌套对象及其所有属性?我希望我的查询只指定我想要嵌套对象,而不需要从嵌套对象中指定我想要的所有属性:
// What I want
{
product(id: "1") {
entityId
nestedObject
}
}
// What I don't want
{
product(id: "1") {
entityId
nestedObject {
key1
key2
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以做第二个版本,但它需要许多额外的代码,包括创建NestedObjectType和指定所有嵌套属性.我还想出了如何自动获取所有键的列表,如下所示:
const ProductType = new GraphQLObjectType({
...
fields: () => ({
nestedObject: {
type: new GraphQLList(GraphQLString),
resolve: product => Object.keys(product.nested_object)
}
})
})
Run Code Online (Sandbox Code Playgroud)
不过,我还没有想出一种自动返回整个对象的方法.
如果我想创建一个由 12 个 False 布尔值组成的列表,是否有快捷方式可以在不输入所有 12 个值的情况下执行此操作?我知道'string ' * 3回报'string string string'。但True * 3刚刚返回3。
希望这个问题不太简单,但我很难通过搜索找到答案。