public static IServiceCollection AddGraphQLServer(this IServiceCollection services, Action <GraphServerBuilder> configure = null) { services.AddHttpContextAccessor(); services.TryAddSingleton <ISchemaFactory, SchemaFactory>(); services.TryAddSingleton <IAttributeAccessor, AttributeAccessor>(); services.TryAddSingleton <IGraphTypeProvider, GraphTypeProvider>(); services.TryAddSingleton <IGraphContextFactory, DefaultGraphContextFactory>(); services.TryAddSingleton <IDocumentBuilder, GraphQLDocumentBuilder>(); services.TryAddSingleton <IGraphSchemaProvider, GraphSchemaProvider>(); services.TryAddSingleton <ISelectionSetProvider, SelectionSetProvider>(); services.TryAddSingleton <IGraphExecutor, DefaultGraphExecutor>(); services.TryAddSingleton <IQueryResultTypeGenerator, QueryResultTypeGenerator>(); services.TryAddSingleton <IGraphSchemaFormatter, GraphSchemaFormatter>(); services.TryAddSingleton <IJsonSerializerProvider, JsonSerializerProvider>(); services.TryAddSingleton <IGraphServiceDiscoverer, GraphServiceDiscoverer>(); services.TryAddSingleton <IArgumentBinderProvider, ArgumentBinderProvider>(); services.TryAddSingleton <IGraphSchemaConverter, GraphSchemaConverter>(); services.AddSingleton <IArgumentBinder, GraphArgumentBinder>(); services.AddSingleton <IArgumentBinder, HttpContextBinder>(); services.AddSingleton <IArgumentBinder, GraphContextBinder>(); services.AddSingleton <IArgumentBinder, ServiceProviderBinder>(); services.AddSingleton <IArgumentBinder, CancellationTokenBinder>(); if (configure != null) { var builder = new GraphServerBuilder(services); configure(builder); } Mapper.Initialize(cfg => cfg.CreateMissingTypeMaps = true); return(services); }
public static GraphServerBuilder UseCamelCase(this GraphServerBuilder builder) { Guard.ArgumentNotNull(builder, nameof(builder)); return(builder.ConfigureGraphQL(options => options.FieldNameConverter = FieldNameConverter.CamelCase)); }
public static GraphServerBuilder UsePathBase(this GraphServerBuilder builder, PathString pathBase) { Guard.ArgumentNotNull(builder, nameof(builder)); return(builder.ConfigureServer(options => options.PathBase = pathBase)); }