Pubblicare un evento nella sottoscrizione graphQL

SI APPLICA A: Tutti i livelli di Gestione API

Il publish-event criterio pubblica un evento in una o più sottoscrizioni specificate in uno schema dell'API GraphQL. Configurare 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 Gestione API.

Nota

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

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 target sottoelementi, 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 createUser mutazione. Pubblica un evento nella onUserCreated sottoscrizione.

Schema di esempio

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


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

type Subscription {
    onUserCreated: User!
}

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