AWS AppSync 订阅参数
AWS AppSync Subscription Arguments
AppSync GraphQL 订阅的参数有何用途?根据文档上的 real-time data 页面:
An important part of using GraphQL subscriptions is understanding when and how to use arguments, as subtle changes will allow you to modify how and when clients are notified of mutations that have occured.
(...)
In the default sample, clients can subscribe to Comments when a specific eventId argument is passed through
不过,我找不到任何方法来访问订阅参数。我有不同的 'channels' 评论,我希望用户能够单独订阅,可以选择使用密码。我设置的订阅改为响应所有频道中的评论。
有什么方法可以 'filter' 使用映射模板或类似模板通过订阅获得的数据吗?如果不是,订阅参数的预期用途是什么?过滤必须在客户端完成吗?
参数控制客户端将从哪些数据中获取订阅通知。例如,如果您通过使用爆炸 (!) 符号所需的模式输入参数,则客户端只能订阅该参数的特定突变的数据。
GraphQL 参数,包括在订阅中传递的参数,应该可以通过解析器中的 $ctx.args
获得(对于 $context.arguments
,这是 shorthand)。例如,如果您有 getThing(name:"XYZ")
的查询,那么您可以使用 $ctx.args.name
.
在您的解析器中访问
对于您的用例,我建议在订阅时使用参数和解析器,以便用户只能通过该参数订阅频道,前提是他们符合某些授权条件,例如密码或查看记录的在用户。你可以在这里找到一个例子:https://docs.aws.amazon.com/appsync/latest/devguide/security-authorization-use-cases.html#real-time-data
参数的名称应与触发事件的突变响应中的字段名称相同。如果您的突变 returns 包含字段 "title" 的类型 "Post" 的值,则将名为 "title" 的参数传递给订阅该突变的订阅将只会获得推送值其中传递给订阅的 "title" 等于突变返回的名为 "title" 的字段的值。
AppSync GraphQL 订阅的参数有何用途?根据文档上的 real-time data 页面:
An important part of using GraphQL subscriptions is understanding when and how to use arguments, as subtle changes will allow you to modify how and when clients are notified of mutations that have occured. (...) In the default sample, clients can subscribe to Comments when a specific eventId argument is passed through
不过,我找不到任何方法来访问订阅参数。我有不同的 'channels' 评论,我希望用户能够单独订阅,可以选择使用密码。我设置的订阅改为响应所有频道中的评论。
有什么方法可以 'filter' 使用映射模板或类似模板通过订阅获得的数据吗?如果不是,订阅参数的预期用途是什么?过滤必须在客户端完成吗?
参数控制客户端将从哪些数据中获取订阅通知。例如,如果您通过使用爆炸 (!) 符号所需的模式输入参数,则客户端只能订阅该参数的特定突变的数据。
GraphQL 参数,包括在订阅中传递的参数,应该可以通过解析器中的 $ctx.args
获得(对于 $context.arguments
,这是 shorthand)。例如,如果您有 getThing(name:"XYZ")
的查询,那么您可以使用 $ctx.args.name
.
对于您的用例,我建议在订阅时使用参数和解析器,以便用户只能通过该参数订阅频道,前提是他们符合某些授权条件,例如密码或查看记录的在用户。你可以在这里找到一个例子:https://docs.aws.amazon.com/appsync/latest/devguide/security-authorization-use-cases.html#real-time-data
参数的名称应与触发事件的突变响应中的字段名称相同。如果您的突变 returns 包含字段 "title" 的类型 "Post" 的值,则将名为 "title" 的参数传递给订阅该突变的订阅将只会获得推送值其中传递给订阅的 "title" 等于突变返回的名为 "title" 的字段的值。