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

Design Principles

Why not use it

How to use it

The github example demonstrates fetching the number of stars of a repository.

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

```rust

[derive(Deserialize)]

pub struct Repository { stargazers: RepoStargazers, }

[derive(Deserialize)]

pub struct RepoStargazers { 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 withformat!`, as you'll usually do.

You 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");

And you fetch and display the data:

rust let repo: Repository = graphql_client.get_first(query)?; println!("stars: {}", repo.stargazers.totalCount);