Share via


將事件發佈至 GraphQL 訂用帳戶

適用於:所有 API 管理 層

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

使用方式

使用注意事項

  • 只有在執行相關 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>

如需使用原則的詳細資訊,請參閱: