public GraphQLAzureFunctionsMiddlewareProxy( IRequestExecutorResolver graphQLExecutorResolver, IHttpResultSerializer graphQLResultSerializer, IHttpRequestParser graphQLRequestParser, NameString schemaName = default, GraphQLAzureFunctionsConfigOptions options = null ) { //We support multiple schemas by allowing a name to be specified, but default to DefaultName if not. this.SchemaName = schemaName.HasValue ? schemaName : Schema.DefaultName; //Initialize the Server Options with defaults! this.Options = options ?? new GraphQLAzureFunctionsConfigOptions(); //Validate Dependencies... this.ExecutorResolver = graphQLExecutorResolver ?? throw new ArgumentNullException(nameof(graphQLExecutorResolver), GRAPHQL_MIDDLEWARE_INIT_ERROR); this.ResultSerializer = graphQLResultSerializer ?? throw new ArgumentNullException(nameof(graphQLResultSerializer), GRAPHQL_MIDDLEWARE_INIT_ERROR); this.RequestParser = graphQLRequestParser ?? throw new ArgumentNullException(nameof(graphQLRequestParser), GRAPHQL_MIDDLEWARE_INIT_ERROR); //The File Provider is initialized internally as an EmbeddedFileProvider this.FileProvider = GraphQLInitHelpers.CreateEmbeddedFileProvider(); //Set the RoutePath; a dependency of all dynamic file serving Middleware! this.RoutePath = new PathString(Options.AzureFunctionsRoutePath); //Initialize the Primary Middleware (POST) as needed for references to GetExecutorAsync() for Error Handling, etc.... //NOTE: This will also return the Middleware to be used as the primary reference. this.PrimaryMiddleware = ConfigureMiddlewareChainOfResponsibility(); }
public HttpGetSchemaMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, NameString schemaName) : base(next, executorResolver, resultSerializer, schemaName) { }
public WebSocketSubscriptionMiddleware( RequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, NameString schemaName) : base(next, executorResolver, resultSerializer, schemaName) { }
public ToolOptionsFileMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, NameString schemaName, PathString matchUrl) : base(next, executorResolver, resultSerializer, schemaName) { _matchUrl = matchUrl; }
public HttpPostMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, IHttpRequestParser requestParser, NameString schemaName) : base(next, executorResolver, resultSerializer, schemaName) { _requestParser = requestParser ?? throw new ArgumentNullException(nameof(requestParser)); }
public HttpMultipartMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, IHttpRequestParser requestParser, NameString schemaName, IOptions <FormOptions> formOptions) : base(next, executorResolver, resultSerializer, requestParser, schemaName) { _formOptions = formOptions.Value; }
public ToolOptionsFileMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, NameString schemaName, PathString matchUrl) : base(next, executorResolver, resultSerializer, schemaName) { _contentTypeProvider = new FileExtensionContentTypeProvider(); _matchUrl = matchUrl; }
public HttpGetSchemaMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, IServerDiagnosticEvents diagnosticEvents, NameString schemaName, MiddlewareRoutingType routing) : base(next, executorResolver, resultSerializer, schemaName) { _diagnosticEvents = diagnosticEvents ?? throw new ArgumentNullException(nameof(diagnosticEvents)); _routing = routing; }
public HttpGetMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, IHttpRequestParser requestParser, IServerDiagnosticEvents diagnosticEvents, NameString schemaName) : base(next, executorResolver, resultSerializer, schemaName) { _requestParser = requestParser ?? throw new ArgumentNullException(nameof(requestParser)); _diagnosticEvents = diagnosticEvents ?? throw new ArgumentNullException(nameof(diagnosticEvents)); }
public HttpPostMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, IRequestParser requestParser, NameString schemaName) { _next = next; _executorResolver = executorResolver; _resultSerializer = resultSerializer; _requestParser = requestParser; _schemaName = schemaName; executorResolver.RequestExecutorEvicted += EvictRequestExecutor; }
public GraphQLAzureFunctionsExecutorProxyV11( IRequestExecutorResolver graphqlExecutorResolver, IHttpResultSerializer graphqlResultSerializer, IHttpRequestParser graphqlRequestParser, NameString schemaName = default ) { this.AzureFunctionsMiddlewareProxy = new GraphQLAzureFunctionsMiddlewareProxy( graphqlExecutorResolver, graphqlResultSerializer, graphqlRequestParser, schemaName ); }
public GraphQLAzureFunctionsExecutorProxyV11Plus( IRequestExecutorResolver graphQLExecutorResolver, IHttpResultSerializer graphQLResultSerializer, IHttpRequestParser graphQLRequestParser, NameString schemaName = default, GraphQLAzureFunctionsConfigOptions options = null ) { this.AzureFunctionsMiddlewareProxy = new GraphQLAzureFunctionsMiddlewareProxy( graphQLExecutorResolver, graphQLResultSerializer, graphQLRequestParser, schemaName, options ); }
public HttpPostMiddleware( HttpRequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, IHttpRequestParser requestParser, IServerDiagnosticEvents diagnosticEvents, NameString schemaName) : base( next, executorResolver, resultSerializer, requestParser, diagnosticEvents, schemaName) { }
protected MiddlewareBase( RequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, NameString schemaName) { _next = next ?? throw new ArgumentNullException(nameof(next)); _executorResolver = executorResolver ?? throw new ArgumentNullException(nameof(executorResolver)); _resultSerializer = resultSerializer ?? throw new ArgumentNullException(nameof(executorResolver)); SchemaName = schemaName; executorResolver.RequestExecutorEvicted += EvictRequestExecutor; }
public GraphQLAzureFunctionsMiddlewareProxy( IRequestExecutorResolver graphqlExecutorResolver, IHttpResultSerializer graphqlResultSerializer, IHttpRequestParser graphqlRequestParser, NameString schemaName = default ) { //We support multiple schemas by allowing a name to be specified, but default to DefaultName if not. this.SchemaName = schemaName.HasValue ? schemaName : Schema.DefaultName; //Validate Dependencies... this.ExecutorResolver = graphqlExecutorResolver ?? throw new ArgumentNullException(nameof(graphqlExecutorResolver), GRAPHQL_MIDDLEWARE_INIT_ERROR); this.ResultSerializer = graphqlResultSerializer ?? throw new ArgumentNullException(nameof(graphqlResultSerializer), GRAPHQL_MIDDLEWARE_INIT_ERROR); this.RequestParser = graphqlRequestParser ?? throw new ArgumentNullException(nameof(graphqlRequestParser), GRAPHQL_MIDDLEWARE_INIT_ERROR); //BBernard - Initialize the middleware proxy and pipeline with support for both Http GET & POST processing... //NOTE: Middleware uses the Pipeline Pattern (similar to Chain Of Responsibility), therefore // we adapt that here to manually build up the two key middleware handlers for Http Get & Http Post processing. var httpGetMiddlewareShim = new HttpGetMiddleware( (httpContext) => throw new HttpRequestException( "GraphQL was unable to process the request, ensure that an Http POST or GET GraphQL request was sent as well-formed Json." ), this.ExecutorResolver, this.ResultSerializer, this.RequestParser, this.SchemaName ); ////NOTE: The normal use case for GraphQL is POST'ing of the query so we initialize it last in the chain/pipeline //// so that it is the first to execute, and then fallback to Http Get if appropriate, finally throw //// an exception if neither are supported by the current request. this.MiddlewareProxy = new HttpPostMiddleware( async(httpContext) => await httpGetMiddlewareShim.InvokeAsync(httpContext), this.ExecutorResolver, this.ResultSerializer, this.RequestParser, this.SchemaName ); }
protected MiddlewareBase( RequestDelegate next, IRequestExecutorResolver executorResolver, IHttpResultSerializer resultSerializer, NameString schemaName) { if (executorResolver == null) { throw new ArgumentNullException(nameof(executorResolver)); } _next = next ?? throw new ArgumentNullException(nameof(next)); _resultSerializer = resultSerializer ?? throw new ArgumentNullException(nameof(executorResolver)); SchemaName = schemaName; ExecutorProxy = new RequestExecutorProxy(executorResolver, schemaName); }