第一件事
欣赏这可能是一个愚蠢的问题,但我正在使用来自RDF/Linked Data世界的GraphQL,并且在我如何返回集合时遇到很多麻烦.基本上我想要一些我可以选择的东西,让我们说一下Characters(使用GraphQL文档中的例子)的列表id.在SPARQL中,我将使用该VALUES子句然后绑定,如:
VALUES { <http://uri/id-1> <http://uri/id-2> <http://uri/id-3> }
Run Code Online (Sandbox Code Playgroud)
我假设这样的东西就是我想要的东西(伪代码)
{
human(id: ["1", "2", "3", "4", "5"]) {
name
height
}
}
Run Code Online (Sandbox Code Playgroud)
别名有点做我想要的,但我不想提前或手动指定不同的命名返回值是什么 - 我想在我的代码中传递一个ID列表:
[1 2 3 4 5]
Run Code Online (Sandbox Code Playgroud)
...并且有一个可以接受该ID数组的查询,并根据上面的伪查询返回一个可预测的非标量形状.
第二件事
我也假设事实上不可能让查询解析为Human或者[Human]- 它必须是一个或另一个?如果是这样的话,没什么大不了的,我只会满足于后者......但我想我现在对这个问题一般很困惑.
bor*_*a89 10
首先,您需要通过添加"人类"来扩展您的查询:
extend type Query {
humans(listId: [String!]): [Human!]
human(id: ObjID!): Human
}
Run Code Online (Sandbox Code Playgroud)
第二 - 为它写一个解析器.
Query: {
humans(root, {listId}, { Human }) {
return Human.fillAllByListId(listId);
},
...
},
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用GraphQL 别名
{
first: human(id: "1") {
name
height
}
second: human(id: "2") {
name
height
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6573 次 |
| 最近记录: |