Struct async_graphql::dynamic::InputObject
source · pub struct InputObject { /* private fields */ }
Available on crate feature
dynamic-schema
only.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 description(self, description: impl Into<String>) -> Self
pub fn description(self, description: impl Into<String>) -> Self
Set the description
sourcepub fn inaccessible(self) -> Self
pub fn inaccessible(self) -> Self
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) -> Self
pub fn field(self, field: InputValue) -> Self
Add a field
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) -> Self
fn from(obj: InputObject) -> Self
Converts to this type from the input type.