gpt4 book ai didi

graphql - GraphQL-从嵌套的JSON对象获取所有字段

转载 作者:行者123 更新时间:2023-12-04 01:08:08 48 4
gpt4 key购买 nike

我将GraphQL包装器放在现有的REST API上,如Zero to GraphQL in 30 minutes中所述。我有一个产品的API端点,该端点具有一个指向嵌套对象的属性:

// API Response
{
entity_id: 1,
nested_object: {
key1: val1,
key2: val2,
...
}
}


是否可以定义架构,以便我可以在不显式定义嵌​​套对象及其所有属性的情况下获得整个嵌套对象?我希望查询仅指定我想要嵌套的对象,而不需要指定我想从嵌套对象获得的所有属性:

// What I want
{
product(id: "1") {
entityId
nestedObject
}
}

// What I don't want
{
product(id: "1") {
entityId
nestedObject {
key1
key2
...
}
}
}


我可以做第二个版本,但是它需要很多额外的代码,包括创建 NestedObjectType并指定所有嵌套的属性。我还想出了如何自动获取所有键的列表,如下所示:

const ProductType = new GraphQLObjectType({
...

fields: () => ({
nestedObject: {
type: new GraphQLList(GraphQLString),
resolve: product => Object.keys(product.nested_object)
}
})
})


不过,我还没有找到一种自动返回整个对象的方法。

最佳答案

我可以做第二个版本,但是它需要很多额外的代码,包括创建NestedObjectType和指定所有嵌套的属性。


做吧!这将会非常棒。这是充分利用GraphQL的方法。

除了防止过度获取之外,它还为您带来了许多其他好处,例如类型验证以及更易读和可维护的代码,因为您的模式可以对数据进行更全面的描述。稍后,您会感谢您自己进行了额外的工作。

如果由于某种原因您确实不想走那条路线并且完全了解后果,则可以使用JSON.stringify将嵌套对象编码为字符串。

但是就像我说的,我建议你不要!

关于graphql - GraphQL-从嵌套的JSON对象获取所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37059523/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com