1

我目前正在使用 GraphQL 转换库来生成我的所有架构。我有一个这样定义的模型:

type Feedback @model {
  id: ID!
  event: Event! @connection(name: "EventFeedbacks")
  submittedDate: AWSDateTime!
}

自动生成的订阅模式是这样的:

type Subscription {
    onCreateFeedback: Feedback
        @aws_subscribe(mutations: ["createFeedback"])
}

我想为订阅提供一个参数,以便我只能订阅该事件,如下所示:

type Subscription {
    onCreateFeedback(eventId: ID): Feedback
        @aws_subscribe(mutations: ["createFeedback"])
}

我需要做什么才能自动生成此订阅?谢谢!

4

2 回答 2

2

当前不支持自定义订阅字段参数。唯一受支持的自定义是创建绑定到单个突变的多个订阅字段。

例子:

type Feedback @model(subscriptions: { onCreate: ["onCreateFeedback", "onCreateFeedbackById"] }) {
  id: ID!
  event: Event! @connection(name: "EventFeedbacks")
  submittedDate: AWSDateTime!
}

将为订阅类型生成:

type Subscription {
    onCreateFeedback: Feedback
        @aws_subscribe(mutations: ["createFeedback"])
    onCreateFeedbackById: Feedback
        @aws_subscribe(mutations: ["createFeedback"])
}

但随后您将不得不在该字段eventId上手动添加参数。onCreateFeedbackById

不过,我建议在https://github.com/aws-amplify/amplify-cli/issues中打开一个功能请求

于 2019-01-19T23:50:55.487 回答
2

正如@Tinou 正确概述的那样,您可以重命名和关闭@model使用arg 生成的订阅字段,但您还可以通过向架构subscriptions添加类型来创建自定义订阅。Subscription

type Subscription {
    customField(arg: String): String @aws_subscribe(mutations:["customPublish"])
}

使用这种方法,您可以添加所需的任何字段和参数。

于 2019-01-21T19:19:03.667 回答