GraphQL サブスクリプションにイベントを発行する
適用対象: すべての API Management レベル
publish-event
ポリシーは、GraphQL API スキーマで指定された 1 つ以上のサブスクリプションにイベントを発行します。 ミューテーションなど、別の操作タイプのスキーマ内の関連フィールド用 GraphQL リゾルバー内にポリシーを構成します。 実行時に、イベントが接続された GraphQL クライアントに発行されます。 API Management の GraphQL API について詳しくは、こちらを参照してください。
注意
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
ポリシー ステートメント
<http-data-source>
<!-- http-data-source is an example resolver policy -->
<http-request>
[...]
</http-request>
<http-response>
[...]
<publish-event>
<targets>
<graphql-subscription id="subscription field" />
</targets>
</publish-event>
</http-response>
</http-data-source>
要素
名前 | 説明 | 必須 |
---|---|---|
ターゲット | target サブ要素で指定された、イベントが発行される先の、GraphQL スキーマ内の 1 つ以上のサブスクリプション。 |
Yes |
使用法
- ポリシー セクション:
http-data-source
リゾルバーのhttp-response
要素 - ポリシー スコープ: GraphQL リゾルバーのみ
- ゲートウェイ: クラシック、v2、従量課金
使用上の注意
- このポリシーは、関連する GraphQL クエリまたはミューテーションが実行された場合にのみ呼び出されます。
例
次のポリシー定義の例は、createUser
ミューテーション用のリゾルバーで構成されています。 onUserCreated
サブスクリプションにイベントを発行します。
スキーマの例
type User {
id: Int!
name: String!
}
type Mutation {
createUser(id: Int!, name: String!): User
}
type Subscription {
onUserCreated: User!
}
サンプル ポリシー
<http-data-source>
<http-request>
<set-method>POST</set-method>
<set-url>https://contoso.com/api/user</set-url>
<set-body template="liquid">{ "id" : {{body.arguments.id}}, "name" : "{{body.arguments.name}}"}</set-body>
</http-request>
<http-response>
<publish-event>
<targets>
<graphql-subscription id="onUserCreated" />
</targets>
</publish-event>
</http-response>
</http-data-source>
関連ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。