Working with GraphQL

Bloodbath proposes a powerful GraphQL API.

It's the same API we use internally for developing our applications, most notably our own dashboard. We follow a Relay style of schema.

If you're new to GraphQL, Apollo has resources for beginners. The official documentation is another good starting point.

Prerequisite

Endpoint

Bloodbath's GraphQL endpoint is:

https://api.bloodbath.io/graphql

It supports introspection so you can query the whole schema.

Authorization

To start querying the endpoint, you must add the API key to your authorization headers.

{
  "headers": {
    "authorization": "Bearer <Your API key>"
  }
}

Check your access

Once you have the headers in place you can ping the GraphQL API

query ping {
  ping {
    receivedAt
  }
}

It should respond with something like

{
  "data": {
    "ping": {
      "receivedAt": "2021-05-23T20:45:44.409594Z"
    }
  }
}

Examples

List events

query listEvents {
  listEvents(first: 5) {
    pageInfo {
      startCursor
    }
    edges {
      node {
      id
      eventId
      method
      lockedAt
      }
    }
  }
}

You'll notice that a difference between id and eventId; we have a Relay style schema. It means we have to map a node id and the event id has to be put on the side.

Find an event

query findEvent{
  findEvent(
    id: "f6596250-044b-4070-a256-31f0977ea4f3"
  ) {
    eventId
    scheduledFor
  }
}

Last updated