[英]GraphQL Conditional Queries
我是GraphQL的新手,我想知道是否有一種簡單的方法來查詢“動態條件”。
例如,在GraphiQL上我可以查詢:
query {
users{
name
age
}
}
它將為我提供所有用戶的列表
{
"data": {
"users": [
{
"name": "Luis Coimbra",
"age": 15
},
{
"name": "Sebastião Campagnucci",
"age": 50
},
{
"name": "Giovana Ribeiro",
"age": 30
}
]
}
}
但是,對於我來說,只有18歲以上或任何其他年齡的用戶才能輕松獲得?
預期的解決方案是:
query {
users{
name
age > 18
}
}
在文檔上沒有找到類似的東西......
這是可能的 - 它必須是不同的。 您的查詢將不是有效的GQL查詢。 這樣的事情會:
{
users(where: {age: { $gt: 18 }}){ #inspired by mongoDB query api
name
age
}
}
或者更簡單:
{
users(where: {age: ">18"}}){
name
age
}
}
當然,后端的解析器需要在users
字段的參數上進行預期where
並在傳遞時相應地構造數據庫查詢。 你不會在GraphQL文檔中找到它,因為GraphQL本身並不關心它。 它只展示了如何使用GraphQL的功能。
如果您嘗試了示例項目,例如star是api,則那些內置的過濾器沒有。
您應該將年齡過濾器作為參數發送。您可以嘗試以下方法:
在你的graphql文件中
type users {
name: String,
age: Int,
...
}
usersQuery(ageLimit: Int): [users]
你也可以發送'>','<','='作為參數。 它似乎也是這樣
usersQuery(ageLimit: Int, ageOperator: String): [users]
並且您應該使用這些運算符配置解析器where語句。 希望它能幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.