Struct async_graphql::SchemaBuilder
source · [−]pub struct SchemaBuilder<Query, Mutation, Subscription> { /* private fields */ }
Expand description
Schema builder
Implementations
sourceimpl<Query, Mutation, Subscription> SchemaBuilder<Query, Mutation, Subscription>
impl<Query, Mutation, Subscription> SchemaBuilder<Query, Mutation, Subscription>
sourcepub fn register_input_type<T: InputType>(self) -> Self
pub fn register_input_type<T: InputType>(self) -> Self
Manually register a input type in the schema.
You can use this function to register schema types that are not directly referenced.
sourcepub fn register_output_type<T: OutputType>(self) -> Self
pub fn register_output_type<T: OutputType>(self) -> Self
Manually register a output type in the schema.
You can use this function to register schema types that are not directly referenced.
sourcepub fn disable_introspection(self) -> Self
pub fn disable_introspection(self) -> Self
Disable introspection queries.
sourcepub fn introspection_only(self) -> Self
pub fn introspection_only(self) -> Self
Only process introspection queries, everything else is processed as an error.
sourcepub fn limit_complexity(self, complexity: usize) -> Self
pub fn limit_complexity(self, complexity: usize) -> Self
Set the maximum complexity a query can have. By default, there is no limit.
sourcepub fn limit_depth(self, depth: usize) -> Self
pub fn limit_depth(self, depth: usize) -> Self
Set the maximum depth a query can have. By default, there is no limit.
sourcepub fn limit_recursive_depth(self, depth: usize) -> Self
pub fn limit_recursive_depth(self, depth: usize) -> Self
Set the maximum recursive depth a query can have. (default: 32)
If the value is too large, stack overflow may occur, usually 32
is
enough.
sourcepub fn extension(self, extension: impl ExtensionFactory) -> Self
pub fn extension(self, extension: impl ExtensionFactory) -> Self
Add an extension to the schema.
Examples
use async_graphql::*;
struct Query;
#[Object]
impl Query {
async fn value(&self) -> i32 {
100
}
}
let schema = Schema::build(Query, EmptyMutation, EmptySubscription)
.extension(extensions::Logger)
.finish();
sourcepub fn data<D: Any + Send + Sync>(self, data: D) -> Self
pub fn data<D: Any + Send + Sync>(self, data: D) -> Self
Add a global data that can be accessed in the Schema
. You access it
with Context::data
.
sourcepub fn validation_mode(self, validation_mode: ValidationMode) -> Self
pub fn validation_mode(self, validation_mode: ValidationMode) -> Self
Set the validation mode, default is ValidationMode::Strict
.
sourcepub fn enable_federation(self) -> Self
pub fn enable_federation(self) -> Self
Enable federation, which is automatically enabled if the Query has least one entity definition.
sourcepub fn enable_subscription_in_federation(self) -> Self
pub fn enable_subscription_in_federation(self) -> Self
Make the Federation SDL include subscriptions.
Note: Not included by default, in order to be compatible with Apollo Server.
sourcepub fn override_input_type_description<T: InputType>(
self,
desc: &'static str
) -> Self
pub fn override_input_type_description<T: InputType>(
self,
desc: &'static str
) -> Self
Override the name of the specified input type.
sourcepub fn override_output_type_description<T: OutputType>(
self,
desc: &'static str
) -> Self
pub fn override_output_type_description<T: OutputType>(
self,
desc: &'static str
) -> Self
Override the name of the specified output type.
sourcepub fn directive<T: CustomDirectiveFactory>(self, directive: T) -> Self
pub fn directive<T: CustomDirectiveFactory>(self, directive: T) -> Self
Register a custom directive.
Panics
Panics if the directive with the same name is already registered.
sourcepub fn disable_suggestions(self) -> Self
pub fn disable_suggestions(self) -> Self
Disable field suggestions.