我在Sangria (scala)上运行一个graphQL服务器。下面是一个查询示例:
query {
missions {
missionId { id } ,
name
}
}和一个示例响应:
{
"data": {
"missions": [
{
"missionId": {
"id": "mission1"
},
"name": "foo"
},
{
"missionId": {
"id": "mission2"
},
"name": "bar"
}
]
}
}我正在寻找一个查询,它过滤列表,并且只返回id为mission1的元素?
发布于 2018-08-31 18:13:50
你需要实现分页。将limit(pageSize)参数传递给graphql服务器resolver。在服务器端进行数据处理。
query {
missions(limit: 1) {
missionId { id } ,
name
}
}服务器端:
const resolvers = {
Query: {
missions: (_, {limit}, ctx) => {
const missions = [];
for(let i = 0; i < limit; i++) {
missions.push(db.missions[i])
}
return missions;
}
}
}这就是graphql的思想,前端开发人员定义了数据结构和他们想要获取的数据。
通过http请求查询list数据不是一个好主意。并在前端使用directive或其他graphql方式对数据进行filter。浪费带宽。
https://stackoverflow.com/questions/52112373
复制相似问题