Publikowanie zdarzenia w subskrypcji programu GraphQL

DOTYCZY: Wszystkie warstwy usługi API Management

Zasady publish-event publikują zdarzenie w co najmniej jednej subskrypcji określonej w schemacie interfejsu API GraphQL. Skonfiguruj zasady w narzędziu rozpoznawania GraphQL dla powiązanego pola w schemacie dla innego typu operacji, takiego jak mutacja. W czasie wykonywania zdarzenie jest publikowane dla połączonych klientów GraphQL. Dowiedz się więcej o interfejsach API GraphQL w usłudze API Management.

Uwaga

Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.

Instrukcja zasad

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

Elementy

Nazwa/nazwisko opis Wymagania
Cele Co najmniej jedna subskrypcja w schemacie GraphQL określona w target podelementach, do których jest publikowane zdarzenie. Tak

Użycie

Uwagi dotyczące użycia

  • Te zasady są wywoływane tylko wtedy, gdy jest wykonywane powiązane zapytanie GraphQL lub mutacja.

Przykład

Poniższa przykładowa definicja zasad jest skonfigurowana w rozpoznawaniu mutacji createUser . Publikuje zdarzenie w onUserCreated subskrypcji.

Przykładowy schemat

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


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

type Subscription {
    onUserCreated: User!
}

Przykładowe zasady

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

Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz: