將事件發佈至 GraphQL 訂用帳戶
適用於:所有 APIM 層
publish-event
原則會將事件發佈到 GraphQL API 結構描述中指定的一或多個訂用帳戶。 針對結構描述中的另一種作業類型 (例如變動),在 GraphQL 解析器中設定適用於相關欄位的原則。 在執行階段,事件會發佈至已連線的 GraphQL 用戶端。 深入了解 API 管理中的 GraphQL API 相關資訊。
注意
請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則。
原則陳述式
<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>
元素
名稱 | 描述 | 必要 |
---|---|---|
目標 | GraphQL 結構描述中的一或多個訂用帳戶,在 target 子元素中指定,事件將發佈到該訂用帳戶。 |
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>
相關原則
相關內容
如需使用原則的詳細資訊,請參閱:
- 教學課程:轉換及保護 API
- 原則參考,取得原則陳述式及其設定的完整清單
- 原則運算式
- 設定或編輯原則
- 重複使用原則設定
- 原則程式碼片段存放庫 (英文)
- Azure API 管理 原則工具組
- 使用 Microsoft Azure Copilot 撰寫原則