Crate glimesh[][src]

A wrapper around graphql_client for easier use with Glimesh. This is currently a work in progress, and should be considered beta, but it is being used to power Oaty in production.

Features

  • Queries
  • Mutations
  • Subscriptions
  • HTTP or Websocket connection
  • Automatic access token refreshing
  • Reconnect and resubscribe to subscriptions on socket failure

Example

More examples can be found in the examples/ directory.

#[derive(GraphQLQuery)]
#[graphql(
    schema_path = "examples/graphql/schema.json",
    query_path = "examples/graphql/user_details.graphql",
    response_derives = "Debug"
)]
pub struct UserDetailsQuery;

let auth = Auth::client_id(client_id);
let conn = Connection::new(auth);
let client = conn.into_client();

let res = client
    .query::<UserDetailsQuery>(
        user_details_query::Variables {
            username: "James".into(),
        }
    )
    .await?;

let user = res.user;
println!("User details: {:#?}", user);

License

Licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Modules

glimesh_date

Glimesh date serialization. Glimesh uses a strange date format, use this module with #[serde(with = ...)] to (de)serialize dates in Glimesh format.

http

Connection over http using reqwest.

ws

Connection over WebSockets.

Structs

AccessToken

Stored information about the access token

Client

Glimesh client. The client is generic over its connection/transport, meaning it can be used with http or websockets (or any future transport Glimesh might support).

Enums

Auth

Authentication method. The Glimesh API requires an authentication method to be used. The most basic is the ClientId method, which gives you read only access to the api.

AuthError

Errors that can occur obtaining and refreshing access tokens

GlimeshError

Errors that can occur when interacting with the Glimesh API.

HttpConnectionError

Errors that can occur using the http based connection

WebsocketConnectionError

Errors that can occur using the websocket based connection

Traits

MutationConn

Connections that implement this support graphql mutations.

QueryConn

Connections that implement this support graphql queries.

SubscriptionConn

Connections that implement this support graphql subscriptions.