首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Sangria中使用graphql查询过滤列表响应

如何在Sangria中使用graphql查询过滤列表响应
EN

Stack Overflow用户
提问于 2018-08-31 17:24:55
回答 1查看 477关注 0票数 0

我在Sangria (scala)上运行一个graphQL服务器。下面是一个查询示例:

代码语言:javascript
复制
query {
  missions { 
    missionId { id } ,
    name
  }
}

和一个示例响应:

代码语言:javascript
复制
{
  "data": {
    "missions": [
      {
        "missionId": {
          "id": "mission1"
        },
        "name": "foo"
      },
      {
        "missionId": {
          "id": "mission2"
        },
        "name": "bar"
      }
    ]
  }
}

我正在寻找一个查询,它过滤列表,并且只返回id为mission1的元素?

EN

回答 1

Stack Overflow用户

发布于 2018-08-31 18:13:50

你需要实现分页。将limit(pageSize)参数传递给graphql服务器resolver。在服务器端进行数据处理。

代码语言:javascript
复制
query {
  missions(limit: 1) { 
    missionId { id } ,
    name
  }
}

服务器端:

代码语言:javascript
复制
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。浪费带宽。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52112373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档