Publish event to GraphQL subscription
APPLIES TO: All API Management tiers
The publish-event
policy publishes an event to one or more subscriptions specified in a GraphQL API schema. Configure the policy in a GraphQL resolver for a related field in the schema for another operation type such as a mutation. At runtime, the event is published to connected GraphQL clients. Learn more about GraphQL APIs in API Management.
Note
Set the policy's elements and child elements in the order provided in the policy statement. Learn more about how to set or edit API Management policies.
Policy statement
<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>
Elements
Name | Description | Required |
---|---|---|
targets | One or more subscriptions in the GraphQL schema, specified in target subelements, to which the event is published. |
Yes |
Usage
- Policy sections:
http-response
element inhttp-data-source
resolver - Policy scopes: GraphQL resolver only
- Gateways: classic, v2, consumption
Usage notes
- This policy is invoked only when a related GraphQL query or mutation is executed.
Example
The following example policy definition is configured in a resolver for the createUser
mutation. It publishes an event to the onUserCreated
subscription.
Example schema
type User {
id: Int!
name: String!
}
type Mutation {
createUser(id: Int!, name: String!): User
}
type Subscription {
onUserCreated: User!
}
Example policy
<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>
Related policies
Related content
For more information about working with policies, see:
- Tutorial: Transform and protect your API
- Policy reference for a full list of policy statements and their settings
- Policy expressions
- Set or edit policies
- Reuse policy configurations
- Policy snippets repo
- Author policies using Microsoft Copilot in Azure