2017-09-27 70 views
1

第一件事傳遞多個參數來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]」這樣的字符串輸入,所以我不必擔心解析,儘管我想這是最後一個選項。 –

回答

2

首先,你需要添加一個「人」,以延長您查詢:

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