我用GraphQL替换现有的REST端点。
在我们现有的REST端点中,我们返回一个JSON数组。
[{
"id": "ABC"
},
{
"id": "123"
},
{
"id": "xyz"
},
{
"id": "789"
}
]
GraphQL似乎将数组包装在另外两个对象层中。有没有办法删除"数据"和"客户"层
回复数据:
{
"data": {
"Client": [
{
"id": "ABC"
},
{
"id": "123"
},
{
"id": "xyz"
},
{
"id": "789"
}
]
}
}
我的查询:
{
Client(accountId: "5417727750494381532d735a") {
id
}
}
答案 0 :(得分:0)
没有。这就是GraphQL的全部目的。拥有单个端点并允许用户通过以查询格式指定输入而不是REST API来获取不同类型/粒度的数据,然后将它们映射到返回的JSON输出。
'数据'充当您查询过的不同实体的父/根级容器。如果在返回的JSON数据中没有这些键,则无法以任何方式隔离相应的数据。例如
您可以修改上述查询以包含其他实体,例如所有者
{
Client(accountId: "5417727750494381532d735a") {
id
}
Owner {
id
}
}

在这种情况下,输出将类似于
{
"data": {
"Client": [
...
],
"Owner": [
...
]
}
}

没有'客户'和'所有者'在JSON输出中的键,没有办法分离相应的数组值。
在您的情况下,您只能通过对返回的输出执行data.Client
来获取数组。