Subscription
Sofa enables you to run GraphQL Subscriptions through WebHooks. It has a special API to start, update, and stop a subscription.
POST /webhook- starts a subscriptionDELETE /webhook/:id- stops itPOST /webhook/:id- updates it
Starting a subscription
To start a new subscription you need to include following data in request’s body:
subscription- subscription’s name, matches the name in GraphQL Schemavariables- variables passed to run a subscription (optional)url- an url of your webhook receiving endpoint
After sending it to POST /webhook you’re going to get in return a unique ID that is your started subscription’s identifier.
{
"id": "SUBSCRIPTION-UNIQUE-ID"
}Stoping a subscription
In order to stop a subscription, you need to pass its id and hit DELETE /webhook/:id.
Updating a subscription
Updating a subscription looks very similar to how you start one. Your request’s body should contain:
variables- variables passed to run a subscription (optional)
After sending it to POST /webhook/:id you’re going to get in return a new ID:
{
"id": "SUBSCRIPTION-UNIQUE-ID"
}Example
Given the following schema:
type Subscription {
onBook: Book
}Let’s start a subscription by sending that to POST /webhook:
{
"subscription": "onBook",
"variables": {},
"url": "https://app.com/new-book"
}In return we get an id that we later on use to stop or update subscription:
DELETE /webhook/:id