public static async Task <IApplicationBuilder> UseOcelot(this IApplicationBuilder builder, OcelotPipelineConfiguration pipelineConfiguration) { var configuration = await CreateConfiguration(builder); CreateAdministrationArea(builder, configuration); if (UsingRafty(builder)) { SetUpRafty(builder); } if (UsingEurekaServiceDiscoveryProvider(configuration)) { builder.UseDiscoveryClient(); } ConfigureDiagnosticListener(builder); var pipelineBuilder = new OcelotPipelineBuilder(builder.ApplicationServices); pipelineBuilder.BuildOcelotPipeline(pipelineConfiguration); var firstDelegate = pipelineBuilder.Build(); /* * inject first delegate into first piece of asp.net middleware..maybe not like this * then because we are updating the http context in ocelot it comes out correct for * rest of asp.net.. */ builder.Properties["analysis.NextMiddlewareName"] = "TransitionToOcelotMiddleware"; builder.Use(async(context, task) => { var downstreamContext = new DownstreamContext(context); await firstDelegate.Invoke(downstreamContext); }); return(builder); }
public static async Task <IApplicationBuilder> UseOcelot(this IApplicationBuilder app, Action <IOcelotPipelineBuilder, OcelotPipelineConfiguration> builderAction, OcelotPipelineConfiguration configuration) { await CreateConfiguration(app); // initConfiguration ConfigureDiagnosticListener(app); var ocelotPipelineBuilder = new OcelotPipelineBuilder(app.ApplicationServices); builderAction?.Invoke(ocelotPipelineBuilder, configuration ?? new OcelotPipelineConfiguration()); var ocelotDelegate = ocelotPipelineBuilder.Build(); app.Properties["analysis.NextMiddlewareName"] = "TransitionToOcelotMiddleware"; app.Use(async(context, task) => { var downstreamContext = new DownstreamContext(context); await ocelotDelegate.Invoke(downstreamContext); }); return(app); }
/// <summary> /// Registers Ocelot with a combination of default middlewares and optional middlewares in the configuration /// </summary> /// <param name="builder"></param> /// <param name="pipelineConfiguration"></param> /// <returns></returns> public static async Task <IApplicationBuilder> UseOcelot(this IApplicationBuilder builder, OcelotPipelineConfiguration pipelineConfiguration) { var configuration = await CreateConfiguration(builder); CreateAdministrationArea(builder, configuration); if (UsingRafty(builder)) { SetUpRafty(builder); } //ToDo //Invoke Steeltow Service Discoverys UserSteeltoeServiceDiscovery(builder, configuration); ConfigureDiagnosticListener(builder); var pipelineBuilder = new OcelotPipelineBuilder(builder.ApplicationServices); pipelineBuilder.BuildOcelotPipeline(pipelineConfiguration); var firstDelegate = pipelineBuilder.Build(); /* * inject first delegate into first piece of asp.net middleware..maybe not like this * then because we are updating the http context in ocelot it comes out correct for * rest of asp.net.. */ builder.Use(async(context, task) => { var downstreamContext = new DownstreamContext(context); await firstDelegate.Invoke(downstreamContext); }); return(builder); }
private static IApplicationBuilder CreateOcelotPipeline(IApplicationBuilder builder, OcelotPipelineConfiguration pipelineConfiguration) { var pipelineBuilder = new OcelotPipelineBuilder(builder.ApplicationServices); pipelineBuilder.BuildOcelotPipeline(pipelineConfiguration); var firstDelegate = pipelineBuilder.Build(); /* * inject first delegate into first piece of asp.net middleware..maybe not like this * then because we are updating the http context in ocelot it comes out correct for * rest of asp.net.. */ builder.Properties["analysis.NextMiddlewareName"] = "TransitionToOcelotMiddleware"; builder.Use(async(context, task) => { var downstreamContext = new DownstreamContext(context); await firstDelegate.Invoke(downstreamContext); }); return(builder); }
public void SetPipelineError(DownstreamContext context, List <Error> errors) { context.Errors = errors; }
public void SetPipelineError(DownstreamContext context, Error error) { Logger.LogWarning(error.Message); context.Errors.Add(error); }