MIT Latest Version docs Chat on Miaou

A simple "bring your own queries and types" GraphQL client.

Design Principles

Why not use it

How to use it

Simple query

The github stars example demonstrates querying GitHub's GraphQL API to get the number of stars of a repository.

First create a client, that you may keep and reuse:

rust let mut graphql_client = GraphqlClient::new("https://api.github.com/graphql")?; graphql_client.set_bearer_auth("your-github-api-token");

You need the struct into which to deserialize the server's answer:

```rust

[derive(Deserialize)]

pub struct Repository { stargazers: Count, } `` (Countis a utility struct provided by byo_graphql, it's juststruct Count { totalCount: usize }`)

And you need a query: rust let query = r#"{ repository(owner: "Canop", name: "bacon") { stargazers { totalCount } } }"#; note: in the example's complete code, the query is dynamically built with format!, as you'll usually do.

Now you can fetch the data:

rust let repo: Repository = graphql_client.get_first_item(query)?; let stars: usize = repo.stargazers.into();

Querying a long list

The github issues example demonstrates how to query a long list with a cursor based exchange.