标签: aws-appsync-resolver

如何处理需要在 AppSync/GraphQL 中连接来自多个数据源的数据的列表?

type Employee {
    id: String!
    name: String
    lastObservedStatus: String
}

type Query {
    employees: [Employee]
}
Run Code Online (Sandbox Code Playgroud)

这是一个虚构的模式来说明我的问题。我有两个单独的数据源,它们返回需要连接的列表才能填充响应。第一个数据源“员工列表 api”是一个 http API,我可以查询以获取权威的员工列表,我可以使用它来填充 和idname。例如,我收到这样的回复:

[
    {"id": "001", "name": "Harry"},
    {"id": "002", "name": "Jerry"},
    {"id": "003", "name": "Larry"}
]
Run Code Online (Sandbox Code Playgroud)

我有第二个 http API“员工观察日志”,我可以查询以获取状态列表以及关联的 ID。该 ID 允许我将号码与员工记录中的条目关联起来,并且我有一个记录日期。可能有不止一条状态记录,但在 GraphQL 中我只想选择最新的一条。响应示例:

[
    {"id":"002", "TimeStamp":"2021-07-01T12:30:00Z", "status": "eating"},
    {"id":"002", "TimeStamp":"2021-07-01T13:10:00Z", "status": "staring out the window"},
    {"id":"001", "TimeStamp":"2021-07-01T16:00:00Z", "status": "sleeping in lobby"}
]
Run Code Online (Sandbox Code Playgroud)

现在,我希望 graphQL 响应返回如下内容:

{
  "data": {
    "employees": [
      {
        "id": "001",
        "name": "Harry",
        "lastObservedStatus": …
Run Code Online (Sandbox Code Playgroud)

graphql aws-appsync aws-appsync-resolver

5
推荐指数
1
解决办法
928
查看次数