@connection 上的 Appsync 过滤列表

Appsync Filtering list on @connection

我有这样的模式

type District @model {
    id: ID!
    name: String!
    workers: [Worker] @connection(name: "DistrictWorker")
}
type Service @model{
    id: ID!
    name: String!
    workers: [Worker] @connection(name: "ServiceWorker")
}
type Worker @model {
    id: ID!
    name: String!
    service: Service @connection(name: "ServiceWorker")
    district: District @connection(name: "DistrictWorker")
}

我想查询 Worker 应用 Service and/or District 过滤连接。 我想我必须编写一些自定义解析器,也许是流水线解析器,我需要一些关于如何实现它的指导。

是否有任何不同的方法来实现相同的目标。

可以通过将所需的过滤字段添加到各自的 ModelFilterInput 来过滤连接上的查询。 Amplify with Appsync 通过生成解析器并将它们连接到我们定义的架构中的特定表,做得很好。我想知道为什么为表生成的 ModelFilterInput 不包含连接字段。

对于上面定义的模式,我修改了生成的代码如下:

input ModelWorkerFilterInput {
    id: ModelIDFilterInput
    name: ModelStringFilterInput
    source: ModelStringFilterInput
    phone: ModelStringFilterInput
    workerServiceId: ModelStringFilterInput # added For @connection(name: "ServiceWorker")
    workerDistrictId: ModelStringFilterInput # added For @connection(name: "DistrictWorker") 
    and: [ModelWorkerFilterInput]
    or: [ModelWorkerFilterInput]
    not: ModelWorkerFilterInput
}