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§
- Access
Token - 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.
- Auth
Error - Errors that can occur obtaining and refreshing access tokens
- Glimesh
Error - Errors that can occur when interacting with the Glimesh API.
- Http
Connection Error - Errors that can occur using the http based connection
- Websocket
Connection Error - Errors that can occur using the websocket based connection
Traits§
- Mutation
Conn - Connections that implement this support graphql mutations.
- Query
Conn - Connections that implement this support graphql queries.
- Subscription
Conn - Connections that implement this support graphql subscriptions.