Sparql 向GraphQL查询传递多个参数
第一件事 请理解,这可能是一个有点愚蠢的问题,但我正在使用GraphQL,因为它来自RDF/链接数据世界,在理解如何返回集合时遇到了很多困难。本质上,我想要一些我可以选择的东西,比如说一个Sparql 向GraphQL查询传递多个参数,sparql,graphql,Sparql,Graphql,第一件事 请理解,这可能是一个有点愚蠢的问题,但我正在使用GraphQL,因为它来自RDF/链接数据世界,在理解如何返回集合时遇到了很多困难。本质上,我想要一些我可以选择的东西,比如说一个字符列表(使用GraphQL文档中的示例),通过它们的id。在SPARQL中,我将使用VALUES子句,然后进行绑定,类似于: VALUES { <http://uri/id-1> <http://uri/id-2> <http://uri/id-3> } 我想做什么就做什
字符列表(使用GraphQL文档中的示例),通过它们的id
。在SPARQL中,我将使用VALUES
子句,然后进行绑定,类似于:
VALUES { <http://uri/id-1> <http://uri/id-2> <http://uri/id-3> }
我想做什么就做什么,但我不想事先或手动指定不同的命名返回值是什么-我想在代码中说传递ID列表:
[1 2 3 4 5]
…并具有一个查询,该查询可以接受该ID数组,并按照上面的伪查询以可预测的非标量形状返回结果
第二件事
我还假设实际上不可能将查询解析为人
或[Human]
——它必须是一个还是另一个?没什么大不了的,如果是这样,我就接受后者。。。但我想我现在对这一点很困惑。首先,您需要通过添加一个“humans”来扩展您的查询:
第二,为它编写一个解析器
Query: {
humans(root, {listId}, { Human }) {
return Human.fillAllByListId(listId);
},
...
},
可以按如下方式传递ID列表:
对于Hasura,您可以这样做(IDK,如果这只适用于Hasura)
这是一个示例,我是否认为这是错误的,我应该定义一个切片
类型,在这个类型中,我可以定义多个参数,将一个假设列表分割为多个范围?即便如此,对于处理资源列表来说,这种感觉还是次优。理想情况下,我希望避免像“[1 2 3 4 5]”
这样的字符串输入,因此我不必担心解析问题,尽管我认为这是最后的选择。
extend type Query {
humans(listId: [String!]): [Human!]
human(id: ObjID!): Human
}
Query: {
humans(root, {listId}, { Human }) {
return Human.fillAllByListId(listId);
},
...
},
query getConfigurationList($ids: [String!]!) {
configuration (where: {id:{_in: $ids}}){
id
value
}
}