A GraphQL wrapper for the tempus API. The spiritual successor of tempus-api.
This GraphQL API is hosted at tempus.nolem.me via tempus-api-graphql-worker.
Using this hosted service with your favorite GraphQL client/library will likely be the simplest way to access this GraphQL API.
For JS projects, this package exports a GraphQLSchema
object to be used with the graphql
package (link).
Below is an example usage:
const { graphql } = require("graphql");
const { schema } = require("tempus-api-graphql");
const query = `
{
map(name: "jump_rush") {
authors {
name
player {
steamId
country
}
}
records(limit: 1, class: SOLDIER) {
duration
player {
name
}
demo {
url
server {
name
online
}
}
}
}
}`;
graphql(schema, query).then((result) => {
console.log(result);
});
Under the hood, this would request the 6 endpoints required to resolve all of the requested fields:
jump_rush
map overviewjump_rush
map record listingauthor
player statsrecord
overviewdemo
overviewserver
status list
These requests are cached and the resolvers attempt to make the fewest requests possible to resolve the requested fields.
At time of writing, that query results in the following:
{
"data": {
"map": {
"authors": [
{
"name": "Bob+M|M+",
"player": {
"steamId": "STEAM_0:1:19865974",
"country": "United States"
}
}
],
"records": {
"soldier": [
{
"duration": 46.91956281661987,
"player": {
"name": "Boshy"
},
"demo": {
"url": "http://tempus-demos.s3.amazonaws.com/23/auto-20181102-140940-jump_rush.zip",
"server": {
"name": "jump.tf (France) Rank 50 Only",
"online": true
}
}
}
]
}
}
}
}
Check out an example project that uses tempus-api-graphql
to power an entirely in-browser GraphiQL
instance. Source for this example found here.
This repo also includes a graphiql
script for running a standalone GraphQL server with express-graphql
.
To start the server, clone this repo and run npm install
and npm run graphiql
.
This will start a server listening at localhost:4000/graphql
, along with a GraphiQL instance at localhost:4000/graphiql
.