Crate glimesh

Source
Expand description

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§

http
Connection over http using reqwest.
hybrid
Hybrid connection that can use a different connection for subscriptions vs querues & mutations.
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).
Subscription
Wraps a Stream to add Drop/Unsubscribe handling.

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.