Use Postman to test Appsync Subscription
Since Postman supports WebSockets testing GraphQL subscriptions is achievable as well. Such a testing requires two steps:
- connection to a server,
- sending a
start
message.
Establishing a connection:
- Create a new WebSocket request.
- Put your server URL
ws://
orwss://
. - Add custom header parameter
Sec-WebSocket-Protocol: graphql-ws
. Other headers may depend on your server configuration. - Press the "Connect" button.
When the connection is established we may start a subscription.
- In the "New message" field put the command.
- Press the "Send" button.
The start
message should look like this:
{
"id":"1",
"payload": {
"operationName": "MySubscription",
"query": "subscription MySubscription {
someSubscription {
__typename
someField1
someField2 {
__typename
someField21
someField22
}
}
}",
"variables": null
},
"type": "start"
}
operationName
is just the name of your subscription, I guess it's optional. And someSubscription
must be a subscription type from your schema.
query
reminds regular GraphQL syntax with one difference:
-
__typename
keyword precedes every field list.
For example, the query from the payload in regular syntax looks like the following:
subscription MySubscription {
someSubscription {
someField1
someField2 {
someField21
someField22
}
}
}
Example message with parameters (variables):
{
"id":"1",
"payload": {
"operationName": "MySubscription",
"query": "subscription MySubscription($param1: String!) {
someSubscription((param1: $param1)) {
__typename
someField
}
}",
"variables": {
"param1": "MyValue"
}
},
"type": "start"
}
It also reminds regular GraphQL syntax as described above.
variables
is an object with your parameters.