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 |
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. |