0

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

query {
  missions { 
    missionId { id } ,
    name
  }
}

和示例响应:

{
  "data": {
    "missions": [
      {
        "missionId": {
          "id": "mission1"
        },
        "name": "foo"
      },
      {
        "missionId": {
          "id": "mission2"
        },
        "name": "bar"
      }
    ]
  }
}

我正在寻找过滤列表并仅返回具有mission1id 的元素的查询?

4

1 回答 1

0

你需要实现分页。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意识形态,前端开发人员定义数据结构以及他们想要获取的数据。

list通过 http 请求查询数据是个坏主意。以及filter前端使用directive或其他方式的数据graphql。浪费带宽。

于 2018-08-31T10:13:49.647 回答