Veröffentlichen des Ereignisses im GraphQL-Abonnement

GILT FÜR: Alle API Management-Ebenen

Die publish-event-Richtlinie veröffentlicht ein Ereignis für ein oder mehrere Abonnements, die in einem GraphQL-API-Schema angegeben sind. Konfigurieren Sie die Richtlinie mit einem GraphQL-Resolver für ein verknüpftes Feld im Schema für einen anderen Vorgangstyp, z. B. eine Mutation. Zur Laufzeit wird das Ereignis auf verbundenen GraphQL-Clients veröffentlicht. Weitere Informationen zu GraphQL-APIs finden Sie in API Management.

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

<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>

Elemente

Name BESCHREIBUNG Erforderlich
Ziele Mindestens ein Abonnement im GraphQL-Schema, das in target Unterelementen angegeben ist, in denen das Ereignis veröffentlicht wird. Ja

Verwendung

Hinweise zur Verwendung

  • Diese Richtlinie wird nur aufgerufen, wenn eine zugehörige GraphQL-Abfrage oder Mutation ausgeführt wird.

Beispiel

Die folgende Beispielrichtliniendefinition ist in einem Resolver für die createUser-Mutation konfiguriert. Es veröffentlicht ein Ereignis im onUserCreated-Abonnement.

Beispielschema

type User {
  id: Int!
  name: String!
}


type Mutation {
    createUser(id: Int!, name: String!): User
}

type Subscription {
    onUserCreated: User!
}

Beispielrichtlinie

<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>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: