Skip to content

Repository files navigation

Dynamic graphql

Build StatusLatest VersionRust DocumentationGitHub license

extendable and dynamic graphql schema definition for async-graphql

Usage

use dynamic_graphql::App;mod foo {use dynamic_graphql::{App,ExpandObject,ExpandObjectFields,SimpleObject};usesuper::root::Query;#[derive(SimpleObject)]pubstructFoo{id:String,name:String,}#[derive(ExpandObject)]pubstructFooQuery<'a>(&'aQuery);#[ExpandObjectFields]implFooQuery<'_>{asyncfnfoo(id:String) -> Foo{Foo{
id,name:"test".to_string(),}}}#[derive(App)]pubstructFooApp(FooQuery<'static>);}mod root {use dynamic_graphql::SimpleObject;#[derive(SimpleObject)]#[graphql(root)]pubstructQuery;}#[derive(App)]structApp(root::Query, foo::FooApp);#[tokio::test]asyncfntest(){let schema = App::create_schema().finish().unwrap();let sdl = schema.sdl();assert_eq!(&sdl,r#"type Foo {	id: String!	name: String!}type Query {	foo(id: String!): Foo!}schema {	query: Query}"#);let query = r#" query { foo(id: "1") { id name } } "#;let res = schema.execute(query).await;let data = res.data.into_json().unwrap();assert_eq!(
data,
serde_json::json!({"foo":{"id":"1","name":"test"}}));}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages