[−][src]Attribute Macro async_graphql::SimpleObject
#[SimpleObject]
Define a GraphQL object
Similar to Object
, but defined on a structure that automatically generates getters for all fields.
Macro parameters
Attribute | description | Type | Optional |
---|---|---|---|
name | Object name | string | Y |
desc | Object description | string | Y |
cache_control | Object cache control | CacheControl | Y |
Field parameters
Attribute | description | Type | Optional |
---|---|---|---|
name | Field name | string | Y |
desc | Field description | string | Y |
deprecation | Field deprecation reason | string | Y |
cache_control | Field cache control | CacheControl | Y |
external | Mark a field as owned by another service. This allows service A to use fields from service B while also knowing at runtime the types of that field. | bool | Y |
provides | Annotate the expected returned fieldset from a field on a base type that is guaranteed to be selectable by the gateway. | string | Y |
requires | Annotate the required input fieldset from a base type for a resolver. It is used to develop a query plan where the required fields may not be needed by the client, but the service may need additional information from other services. | string | Y |
Examples
use async_graphql::*; #[SimpleObject] struct QueryRoot { #[field] value: i32, } #[async_std::main] async fn main() { let schema = Schema::new(QueryRoot{ value: 10 }, EmptyMutation, EmptySubscription); let res = schema.execute("{ value }").await.unwrap().data; assert_eq!(res, serde_json::json!({ "value": 10, })); }