Struct dynamic_graphql::dynamic::InputObject  
source · pub struct InputObject { /* private fields */ }Expand description
A GraphQL input object type
Examples
use async_graphql::{dynamic::*, value, Value};
let my_input = InputObject::new("MyInput")
    .field(InputValue::new("a", TypeRef::named_nn(TypeRef::INT)))
    .field(InputValue::new("b", TypeRef::named_nn(TypeRef::INT)));
let query = Object::new("Query").field(
    Field::new("add", TypeRef::named_nn(TypeRef::INT), |ctx| {
        FieldFuture::new(async move {
            let input = ctx.args.try_get("input")?;
            let input = input.object()?;
            let a = input.try_get("a")?.i64()?;
            let b = input.try_get("b")?.i64()?;
            Ok(Some(Value::from(a + b)))
        })
    })
    .argument(InputValue::new("input", TypeRef::named_nn(my_input.type_name())))
);
let schema = Schema::build(query.type_name(), None, None)
    .register(my_input)
    .register(query)
    .finish()?;
assert_eq!(
   schema
       .execute("{ add(input: { a: 10, b: 20 }) }")
       .await
       .into_result()
       .unwrap()
       .data,
   value!({ "add": 30 })
);
Implementations§
source§impl InputObject
 
impl InputObject
sourcepub fn new(name: impl Into<String>) -> InputObject
 
pub fn new(name: impl Into<String>) -> InputObject
Create a GraphQL input object type
sourcepub fn description(self, description: impl Into<String>) -> InputObject
 
pub fn description(self, description: impl Into<String>) -> InputObject
Set the description
sourcepub fn inaccessible(self) -> InputObject
 
pub fn inaccessible(self) -> InputObject
Indicate that an enum is not accessible from a supergraph when using Apollo Federation
Reference: https://www.apollographql.com/docs/federation/federated-types/federated-directives/#inaccessible
Arbitrary string metadata that will be propagated to the supergraph when using Apollo Federation. This attribute is repeatable
sourcepub fn field(self, field: InputValue) -> InputObject
 
pub fn field(self, field: InputValue) -> InputObject
Add a field
sourcepub fn oneof(self) -> InputObject
 
pub fn oneof(self) -> InputObject
Indicates this Input Object is a OneOf Input Object
Trait Implementations§
source§impl Debug for InputObject
 
impl Debug for InputObject
source§impl From<InputObject> for Type
 
impl From<InputObject> for Type
source§fn from(obj: InputObject) -> Type
 
fn from(obj: InputObject) -> Type
Converts to this type from the input type.