我从您可以搜索的文档中了解通过 graphql 进行查询的原则:
{
"hero": {
"name": "R2-D2"
}
}
但是您是否想做一些更复杂的事情,例如:
{
"hero": {
"name": "R2-D2 AND C-3PO AND BB-8 NOT K-2SO"
}
}
有没有办法传递这样的字符串并获得适当的结果?
我从您可以搜索的文档中了解通过 graphql 进行查询的原则:
{
"hero": {
"name": "R2-D2"
}
}
但是您是否想做一些更复杂的事情,例如:
{
"hero": {
"name": "R2-D2 AND C-3PO AND BB-8 NOT K-2SO"
}
}
有没有办法传递这样的字符串并获得适当的结果?
不,没有。
您可以通读GraphQL 规范,看看它做了什么,没有定义什么。特别是该规范没有定义任何类型的过滤、任何类型的表达式语言或任何类型的布尔组合器。WHERE NAME='foo'
(如果没有字段解析器显式添加它,就没有本地方法可以说相当于 SQL 。)
GraphQL 允许的字段参数是足够开放的,您可以在它之上构建更丰富的查询,但这对于某些应用程序或库来说非常具体。两个突出的例子是GitHub GraphQL API(它倾向于允许对选定字段进行精确匹配查询,但没有更丰富的内容)和Prisma API(它有一个涉及的多级对象方案来复制 SQL 查询)。