/// <summary> /// </summary> /// <param name="context"></param> /// <returns></returns> public async Task Invoke(HttpContext context) { if (context.Request.IsGetOrHeadMethod() && context.Request.TryMatchPath(_matchUrl, false, out PathString subPath) && subPath.Value == _configFile && (context.GetGraphQLToolOptions()?.Enable ?? true)) { GraphQLToolOptions?options = context.GetGraphQLToolOptions(); var config = new BananaCakePopConfiguration(); ISchema schema = await ExecutorProxy.GetSchemaAsync(context.RequestAborted); if (options is not null) { config.Document = options.Document; config.Credentials = ConvertCredentialsToString(options.Credentials); config.HttpHeaders = ConvertHttpHeadersToDictionary(options.HttpHeaders); config.HttpMethod = ConvertHttpMethodToString(options.HttpMethod); } await context.Response.WriteAsJsonAsync(config, context.RequestAborted); } else { await NextAsync(context); } }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { Configuration.Load(); InitializeParsers(); Executor = ExecutorProxy.Create(); Executor.GrammarNodes = Grammar.Nodes; Executor.Started += Executor_Started; Executor.Ended += Executor_Ended; Executor.Input += Executor_Input; OpenDefauldDocument(); }
/// <summary> /// </summary> /// <param name="context"></param> /// <returns></returns> public async Task Invoke(HttpContext context) { if (context.Request.IsGetOrHeadMethod() && context.Request.TryMatchPath(_matchUrl, false, out PathString subPath) && subPath.Value == _configFile) { ToolOptions?options = context.GetEndpoint()?.Metadata.GetMetadata <ToolOptions>(); string endpointPath = context.Request.Path.Value !.Replace(_configFile, ""); string schemaEndpoint = CreateEndpointUri( context.Request.Host.Value, endpointPath, context.Request.IsHttps, false); var config = new BananaCakePopConfiguration(schemaEndpoint) { EndpointEditable = false, }; ISchema schema = await ExecutorProxy.GetSchemaAsync(context.RequestAborted); if (options is { })