Making A Request
Fetching data from a GraphQL API is a simple as making a HTTP request. The code below provides a basic example of how this can be achieved.
C#
using System.Net.Http.Headers;
using System.Text;
public class Program
{
public async static Task Main()
{
var url = "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/";
var token = ""; // JWT Access Token;
var query = ""; // Omitted for brevity
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Api-Key", token);
var request = new StringContent(query, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, request);
var responseBody = await response.Content.ReadAsStringAsync();
}
}
Go
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/"
token := "" // JWT Access Token;
query := "" // Omitted for brevity
req, _ := http.NewRequest("POST", url, bytes.NewBuffer([]byte(query)))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", fmt.Sprintf("Api-Key %s", token))
client := http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
responseBody, _ := ioutil.ReadAll(resp.Body)
}
Node js
"use strict";
import fetch from "node-fetch";
const url = "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/";
const token = ""; // JWT Access Token;
const query = ""; // Omitted for brevity
const response = await fetch(url, {
method: "POST",
body: query,
headers: {
"Content-Type": "application/json",
Authorization: `Api-Key ${token}`,
},
});
const responseBody = await response.json();
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) {
var url = "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/";
var token = ""; // JWT Access Token;
var query = ""; // Omitted for brevity
var request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Content-Type", "application/json")
.header("Authorization", "Api-Key " + token)
.POST(HttpRequest.BodyPublishers.ofString(query))
.build();
var client = HttpClient.newHttpClient();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
var responseBody = response.body();
}
}
Python
import asyncio
import aiohttp
async def main():
url = "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/"
token = "" # JWT Access Token
query = "" # Omitted for brevity
headers = {
"Authorization": f"Api-Key {token}",
"Content-Type": "application/json"
}
async with aiohttp.ClientSession() as session:
async with session.post(url, data=query, headers=headers) as response:
response_body = await response.text()
print(response_body)
asyncio.run(main())