传递多个参数来GraphQL查询

问题描述:

第一件事传递多个参数来GraphQL查询

明白这一点可能有点愚蠢的问题,但我与GraphQL工作已经来自RDF /关联数据的世界,有很多的麻烦让我的脑袋回答我将如何返回一套。基本上我想要一些我可以选择的东西,比如Characters(使用GraphQL文档中的例子)的列表,通过他们的id。在SPARQL我会使用VALUES条款,然后结合,是这样的:

VALUES { <http://uri/id-1> <http://uri/id-2> <http://uri/id-3> } 

我认为这样的事情会是我想要的(伪)

{ 
    human(id: ["1", "2", "3", "4", "5"]) { 
    name 
    height 
    } 
} 

Aliases样的做我想做的,但我不希望有预先指定或手动什么不同的命名返回值是 - 我想在我的代码说通过ID列表:

[1 2 3 4 5] 

...并且有一个查询可以接受这个ID数组,并根据上面的伪查询返回可预测的非标量形状的结果。

第二件事

我也假设,它在事实上不可能有一个查询的决心,无论是Human[Human] - 它必须是一个或其他?如果是的话,不要大声,我只是为后者而定......但是我认为我现在对此一般都很困惑。

+0

例如,我在思考这个错了,我应该明确说了'Slice'类型在那里我可以定义多个参数砍一个假设列表进入范围?即便如此,这种感觉对于处理资源清单来说是次优的。 –

+0

理想情况下,我想避免像'“[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); 
    }, 
    ... 
}, 

ID列表可通过如下: pass list of IDs