Publicación de eventos en una suscripción de GraphQL
SE APLICA A: todos los niveles de API Management
La directiva publish-event
publica un evento en una o varias suscripciones especificadas en un esquema de API de GraphQL. Configure la directiva en un solucionador de GraphQL para un campo relacionado en el esquema para otro tipo de operación, como una mutación. En tiempo de ejecución, el evento se publica en clientes de GraphQL conectados. Obtenga más información sobre las API de GraphQL en API Management.
Nota
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<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
Nombre | Descripción | Obligatorio |
---|---|---|
destinos | Una o varias suscripciones del esquema de GraphQL, especificadas en target subelementos, en las que se publica el evento. |
Sí |
Uso
- Secciones de la directiva:
http-response
elemento de la resoluciónhttp-data-source
- Ámbitos de directiva: solo resolución de GraphQL
- Puertas de enlace: clásica, v2, consumo
Notas de uso
- Esta directiva solo se invoca cuando se ejecuta una consulta relacionada de GraphQL o se ejecuta una mutación.
Ejemplo
La siguiente definición de directiva de ejemplo se configura en una resolución para la mutación createUser
. Publica un evento en la suscripción onUserCreated
.
Esquema de ejemplo
type User {
id: Int!
name: String!
}
type Mutation {
createUser(id: Int!, name: String!): User
}
type Subscription {
onUserCreated: User!
}
Ejemplo de directiva
<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>
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Creación de directivas mediante Microsoft Copilot en Azure