我有一个接受自定义查询的RESTful服务,如下所示:
/entities/User?actions=
{
"$link": {
"entityType": "Manager",
"entity": {
"name": "John Smith"
},
"linkName": "managers",
"backLinkName": "account",
"$set": {
"propertyName": "aclWrite",
"propertyValue": {
"$ref": {
"propertyName": "entityId"
}
}
}
}
}这仅仅意味着:
我创建了这个查询结构,因为我找不到任何合适的查询语言来支持这样的操作/过程。
这里的问题是,是否有任何查询语言可以支持这样的复合操作/过程,或者GraphQL是否能够处理这种复合操作/过程?
发布于 2019-07-25 11:49:12
作为一种规范,GraphQL并不关心您的模式定义了哪些字段,这些字段采用了哪些参数,或者您的字段解析器对这些参数做了什么。因此,完全可以设计一个模式,让客户端组成一个等效的突变:
mutation {
link(
entityType: "Manager"
entity: {
name: "John Smith"
}
linkName: "managers"
backLinkName: "account"
set: {
propertyName: "aclWrite"
propertyValue: {
ref: {
propertyName: "entityId"
}
}
}
) {
# some fields here to return in the response
}
}GraphQL不支持对同一查询中其他节点的引用,因此您可能仍然需要一个输入镜像现有API的单个突变。尽管如此,使用GraphQL可能仍然更好,因为有了请求验证,对于这样复杂的请求,这一点就更加重要了。拥有一个像GraphiQL或GraphQL游乐场这样的IDE,允许您使用自动完成编写查询也是一个很大的好处。
https://stackoverflow.com/questions/57195116
复制相似问题