Partilhar via


Publicar evento na assinatura do GraphQL

APLICA-SE A: Todas as camadas de gerenciamento de API

A publish-event política publica um evento para uma ou mais assinaturas especificadas em um esquema de API GraphQL. Configure a política em um resolvedor GraphQL para um campo relacionado no esquema para outro tipo de operação, como uma mutação. No tempo de execução, o evento é publicado para clientes GraphQL conectados. Saiba mais sobre as APIs do GraphQL no Gerenciamento de API.

Nota

Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar políticas de Gerenciamento de API.

Declaração de política

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

Elementos

Nome Descrição Obrigatório
Objetivos Uma ou mais assinaturas no esquema GraphQL, especificado em target subelementos, no qual o evento é publicado. Sim

Utilização

Notas de utilização

  • Esta política é invocada somente quando uma consulta ou mutação GraphQL relacionada é executada.

Exemplo

O exemplo de definição de política a seguir é configurado em um resolvedor para a createUser mutação. Publica um evento para a onUserCreated assinatura.

Esquema de exemplo

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


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

type Subscription {
    onUserCreated: User!
}

Exemplo de política

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

Para obter mais informações sobre como trabalhar com políticas, consulte: