Pubblicare l'evento nella sottoscrizione GraphQL

SI APPLICA A: Tutti i livelli di Gestione API

Il criterio publish-event pubblica un evento in una o più sottoscrizioni specificate in uno schema dell'API GraphQL. Configura i criteri in un resolver GraphQL per un campo correlato nello schema per un altro tipo di operazione, ad esempio una mutazione. In fase di esecuzione, l'evento viene pubblicato nei client GraphQL connessi. Altre informazioni sulle API GraphQL in API Management.

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

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

Elementi

Nome Descrizione Richiesto
destinazioni Una o più sottoscrizioni nello schema GraphQL, specificate in sotto-elementi target, in cui viene pubblicato l'evento.

Utilizzo

Note sull'utilizzo

  • Questo criterio viene richiamato solo quando viene eseguita una query o una mutazione GraphQL correlata.

Esempio

La definizione di criteri di esempio seguente viene configurata in un sistema di risoluzione per la mutazione createUser. Pubblica un evento nella sottoscrizione onUserCreated.

Schema di esempio

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


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

type Subscription {
    onUserCreated: User!
}

Criterio di esempio

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

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: