实例介绍
Ocelot 是一个 .NET API 网关。这个项目旨在为使用 .NET 运行微服务/服务导向架构的人提供统一的系统入口点。然而,它也可以与任何支持 HTTP(S) 的平台一起运行,并且支持 ASP.NET Core 支持的任何平台。
特别是,我们希望轻松集成 IdentityServer 参考和 Bearer tokens。我们在当前工作场所无法找到此功能,而不得不编写自己的 JavaScript 中间件来处理 IdentityServer 参考令牌。我们宁愿使用已经存在的 IdentityServer 代码来完成这项任务。
Ocelot 是一堆特定顺序的中间件。Ocelot 将 HttpRequest 对象操纵到其配置指定的状态,直到达到请求生成器中间件,在该中间件中创建一个 HttpRequestMessage 对象,用于向下游服务发出请求。
发出请求的中间件是 Ocelot 管道中的最后一件事。它不调用下一个中间件。从下游服务的响应会随着请求返回到 Ocelot 管道。
【实例截图】
【核心代码】
文件清单
└── Ocelot-ab9fb65e1f8ca93274c3244577164880cb3fe769
├── build.cake
├── codeanalysis.ruleset
├── docker
│ ├── 8.21.0
│ │ ├── build.sh
│ │ ├── Dockerfile.base
│ │ ├── Dockerfile.build
│ │ └── Dockerfile.release
│ ├── build.sh
│ ├── Dockerfile.base
│ ├── Dockerfile.build
│ ├── Dockerfile.release
│ └── README.md
├── docs
│ ├── building
│ │ ├── building.rst
│ │ ├── overview.rst
│ │ ├── releaseprocess.rst
│ │ └── tests.rst
│ ├── conf.py
│ ├── features
│ │ ├── administration.rst
│ │ ├── authentication.rst
│ │ ├── authorization.rst
│ │ ├── caching.rst
│ │ ├── claimstransformation.rst
│ │ ├── configuration.rst
│ │ ├── delegatinghandlers.rst
│ │ ├── dependencyinjection.rst
│ │ ├── errorcodes.rst
│ │ ├── graphql.rst
│ │ ├── headerstransformation.rst
│ │ ├── kubernetes.rst
│ │ ├── loadbalancer.rst
│ │ ├── logging.rst
│ │ ├── methodtransformation.rst
│ │ ├── middlewareinjection.rst
│ │ ├── qualityofservice.rst
│ │ ├── ratelimiting.rst
│ │ ├── requestaggregation.rst
│ │ ├── requestid.rst
│ │ ├── routing.rst
│ │ ├── servicediscovery.rst
│ │ ├── servicefabric.rst
│ │ ├── tracing.rst
│ │ └── websockets.rst
│ ├── images
│ │ ├── OcelotBasic.jpg
│ │ ├── OcelotIndentityServer.jpg
│ │ ├── OcelotMultipleInstancesConsul.jpg
│ │ ├── OcelotMultipleInstances.jpg
│ │ └── OcelotServiceFabric.jpg
│ ├── index.rst
│ ├── introduction
│ │ ├── bigpicture.rst
│ │ ├── contributing.rst
│ │ ├── gettingstarted.rst
│ │ ├── gotchas.rst
│ │ └── notsupported.rst
│ ├── make.bat
│ ├── Makefile
│ ├── make.sh
│ ├── readme.md
│ ├── requirements.txt
│ └── _static
│ └── overrides.css
├── GitVersion.yml
├── images
│ └── ocelot_logo.png
├── LICENSE.md
├── Ocelot.Release.sln
├── Ocelot.sln
├── postman
│ └── ocelot.postman_collection.json
├── README.md
├── ReleaseNotes.md
├── samples
│ ├── Administration
│ │ ├── appsettings.json
│ │ ├── Issue645.postman_collection.json
│ │ ├── ocelot.json
│ │ ├── Ocelot.Samples.AdministrationApi.csproj
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── README.md
│ │ └── tempkey.rsa
│ ├── Basic
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── ocelot.json
│ │ ├── Ocelot.Samples.Basic.ApiGateway.csproj
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ └── Startup.cs
│ ├── Eureka
│ │ ├── ApiGateway
│ │ │ ├── appsettings.json
│ │ │ ├── ocelot.json
│ │ │ ├── Ocelot.Samples.Eureka.ApiGateway.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ └── launchSettings.json
│ │ ├── DownstreamService
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ ├── Controllers
│ │ │ │ └── CategoryController.cs
│ │ │ ├── Ocelot.Samples.Eureka.DownstreamService.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ └── Startup.cs
│ │ ├── OcelotEureka.sln
│ │ └── README.md
│ ├── GraphQL
│ │ ├── OcelotGraphQL.sln
│ │ ├── ocelot.json
│ │ ├── Ocelot.Samples.GraphQL.csproj
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ └── README.md
│ ├── Kubernetes
│ │ ├── ApiGateway
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ ├── Dockerfile
│ │ │ ├── ocelot.json
│ │ │ ├── Ocelot.Samples.Kubernetes.ApiGateway.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ └── Startup.cs
│ │ ├── Dockerfile
│ │ ├── DownstreamService
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ ├── Controllers
│ │ │ │ ├── ValuesController.cs
│ │ │ │ └── WeatherForecastController.cs
│ │ │ ├── Dockerfile
│ │ │ ├── Models
│ │ │ │ └── WeatherForecast.cs
│ │ │ ├── Ocelot.Samples.Kubernetes.DownstreamService.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ └── launchSettings.json
│ │ └── OcelotKube.sln
│ ├── Ocelot.Samples.sln
│ ├── OpenTracing
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── ocelot.json
│ │ ├── Ocelot.Samples.OpenTracing.csproj
│ │ └── Program.cs
│ ├── ServiceDiscovery
│ │ ├── ApiGateway
│ │ │ ├── appsettings.json
│ │ │ ├── ocelot.json
│ │ │ ├── Ocelot.Samples.ServiceDiscovery.ApiGateway.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ └── ServiceDiscovery
│ │ │ ├── MyServiceDiscoveryProvider.cs
│ │ │ └── MyServiceDiscoveryProviderFactory.cs
│ │ ├── DownstreamService
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ ├── Controllers
│ │ │ │ ├── CategoriesController.cs
│ │ │ │ ├── HealthController.cs
│ │ │ │ └── WeatherForecastController.cs
│ │ │ ├── Models
│ │ │ │ ├── HealthResult.cs
│ │ │ │ ├── MicroserviceResult.cs
│ │ │ │ ├── ReadyResult.cs
│ │ │ │ └── WeatherForecast.cs
│ │ │ ├── Ocelot.Samples.ServiceDiscovery.DownstreamService.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ └── Startup.cs
│ │ ├── Ocelot.Samples.ServiceDiscovery.sln
│ │ └── README.md
│ └── ServiceFabric
│ ├── ApiGateway
│ │ ├── appsettings.json
│ │ ├── OcelotApplicationApiGateway.cs
│ │ ├── ocelot.json
│ │ ├── Ocelot.Samples.ServiceFabric.ApiGateway.csproj
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── ServiceEventListener.cs
│ │ ├── ServiceEventSource.cs
│ │ └── WebCommunicationListener.cs
│ ├── build.bat
│ ├── build.sh
│ ├── CONTRIBUTING.md
│ ├── dotnet-include.sh
│ ├── DownstreamService
│ │ ├── ApiGateway.cs
│ │ ├── Controllers
│ │ │ └── ValuesController.cs
│ │ ├── Ocelot.Samples.ServiceFabric.DownstreamService.csproj
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── ServiceEventSource.cs
│ │ └── Startup.cs
│ ├── install.ps1
│ ├── install.sh
│ ├── LICENSE.md
│ ├── OcelotApplication
│ │ ├── ApplicationManifest.xml
│ │ ├── OcelotApplicationApiGatewayPkg
│ │ │ ├── Code
│ │ │ │ ├── entryPoint.cmd
│ │ │ │ └── entryPoint.sh
│ │ │ ├── Config
│ │ │ │ ├── _readme.txt
│ │ │ │ └── Settings.xml
│ │ │ ├── Data
│ │ │ │ └── _readme.txt
│ │ │ ├── ServiceManifest-Linux.xml
│ │ │ ├── ServiceManifest-Windows.xml
│ │ │ └── ServiceManifest.xml
│ │ └── OcelotApplicationServicePkg
│ │ ├── Code
│ │ │ ├── entryPoint.cmd
│ │ │ └── entryPoint.sh
│ │ ├── Config
│ │ │ ├── _readme.txt
│ │ │ └── Settings.xml
│ │ ├── Data
│ │ │ └── _readme.txt
│ │ ├── ServiceManifest-Linux.xml
│ │ ├── ServiceManifest-Windows.xml
│ │ └── ServiceManifest.xml
│ ├── README.md
│ ├── uninstall.ps1
│ └── uninstall.sh
├── src
│ ├── Ocelot
│ │ ├── Authentication
│ │ │ └── Middleware
│ │ │ ├── AuthenticationMiddleware.cs
│ │ │ └── AuthenticationMiddlewareExtensions.cs
│ │ ├── Authorization
│ │ │ ├── ClaimsAuthorizer.cs
│ │ │ ├── ClaimValueNotAuthorizedError.cs
│ │ │ ├── IClaimsAuthorizer.cs
│ │ │ ├── IScopesAuthorizer.cs
│ │ │ ├── Middleware
│ │ │ │ ├── AuthorizationMiddleware.cs
│ │ │ │ └── AuthorizationMiddlewareMiddlewareExtensions.cs
│ │ │ ├── ScopeNotAuthorizedError.cs
│ │ │ ├── ScopesAuthorizer.cs
│ │ │ ├── UnauthorizedError.cs
│ │ │ └── UserDoesNotHaveClaimError.cs
│ │ ├── Cache
│ │ │ ├── AspMemoryCache.cs
│ │ │ ├── CachedResponse.cs
│ │ │ ├── CacheObject.cs
│ │ │ ├── DefaultCacheKeyGenerator.cs
│ │ │ ├── ICacheKeyGenerator.cs
│ │ │ ├── IOcelotCache.cs
│ │ │ ├── IRegionCreator.cs
│ │ │ ├── MD5Helper.cs
│ │ │ ├── Middleware
│ │ │ │ ├── OutputCacheMiddleware.cs
│ │ │ │ └── OutputCacheMiddlewareExtensions.cs
│ │ │ ├── OutputCacheController.cs
│ │ │ ├── RegionCreator.cs
│ │ │ └── Regions.cs
│ │ ├── Claims
│ │ │ ├── AddClaimsToRequest.cs
│ │ │ ├── IAddClaimsToRequest.cs
│ │ │ └── Middleware
│ │ │ ├── ClaimsBuilderMiddlewareExtensions.cs
│ │ │ └── ClaimsToClaimsMiddleware.cs
│ │ ├── Configuration
│ │ │ ├── AuthenticationOptions.cs
│ │ │ ├── Builder
│ │ │ │ ├── AuthenticationOptionsBuilder.cs
│ │ │ │ ├── DownstreamRouteBuilder.cs
│ │ │ │ ├── QoSOptionsBuilder.cs
│ │ │ │ ├── RateLimitOptionsBuilder.cs
│ │ │ │ ├── RouteBuilder.cs
│ │ │ │ ├── RouteOptionsBuilder.cs
│ │ │ │ ├── ServiceProviderConfigurationBuilder.cs
│ │ │ │ └── UpstreamPathTemplateBuilder.cs
│ │ │ ├── CacheOptions.cs
│ │ │ ├── ChangeTracking
│ │ │ │ ├── IOcelotConfigurationChangeTokenSource.cs
│ │ │ │ ├── OcelotConfigurationChangeToken.cs
│ │ │ │ ├── OcelotConfigurationChangeTokenSource.cs
│ │ │ │ └── OcelotConfigurationMonitor.cs
│ │ │ ├── ClaimToThing.cs
│ │ │ ├── Creator
│ │ │ │ ├── AddHeader.cs
│ │ │ │ ├── AggregatesCreator.cs
│ │ │ │ ├── AuthenticationOptionsCreator.cs
│ │ │ │ ├── ClaimsToThingCreator.cs
│ │ │ │ ├── ConfigurationCreator.cs
│ │ │ │ ├── DownstreamAddressesCreator.cs
│ │ │ │ ├── DynamicsCreator.cs
│ │ │ │ ├── FileInternalConfigurationCreator.cs
│ │ │ │ ├── HeaderFindAndReplaceCreator.cs
│ │ │ │ ├── HeaderTransformations.cs
│ │ │ │ ├── HttpHandlerOptionsCreator.cs
│ │ │ │ ├── HttpVersionCreator.cs
│ │ │ │ ├── IAggregatesCreator.cs
│ │ │ │ ├── IAuthenticationOptionsCreator.cs
│ │ │ │ ├── IClaimsToThingCreator.cs
│ │ │ │ ├── IConfigurationCreator.cs
│ │ │ │ ├── IDownstreamAddressesCreator.cs
│ │ │ │ ├── IDynamicsCreator.cs
│ │ │ │ ├── IHeaderFindAndReplaceCreator.cs
│ │ │ │ ├── IHttpHandlerOptionsCreator.cs
│ │ │ │ ├── IInternalConfigurationCreator.cs
│ │ │ │ ├── ILoadBalancerOptionsCreator.cs
│ │ │ │ ├── IQoSOptionsCreator.cs
│ │ │ │ ├── IRateLimitOptionsCreator.cs
│ │ │ │ ├── IRequestIdKeyCreator.cs
│ │ │ │ ├── IRouteKeyCreator.cs
│ │ │ │ ├── IRouteOptionsCreator.cs
│ │ │ │ ├── IRoutesCreator.cs
│ │ │ │ ├── ISecurityOptionsCreator.cs
│ │ │ │ ├── IServiceProviderConfigurationCreator.cs
│ │ │ │ ├── IUpstreamTemplatePatternCreator.cs
│ │ │ │ ├── IVersionCreator.cs
│ │ │ │ ├── LoadBalancerOptionsCreator.cs
│ │ │ │ ├── QoSOptionsCreator.cs
│ │ │ │ ├── RateLimitOptionsCreator.cs
│ │ │ │ ├── RequestIdKeyCreator.cs
│ │ │ │ ├── RouteKeyCreator.cs
│ │ │ │ ├── RouteOptionsCreator.cs
│ │ │ │ ├── RoutesCreator.cs
│ │ │ │ ├── SecurityOptionsCreator.cs
│ │ │ │ ├── ServiceProviderConfigurationCreator.cs
│ │ │ │ └── UpstreamTemplatePatternCreator.cs
│ │ │ ├── DownstreamHostAndPort.cs
│ │ │ ├── DownstreamRoute.cs
│ │ │ ├── File
│ │ │ │ ├── AggregateRouteConfig.cs
│ │ │ │ ├── FileAggregateRoute.cs
│ │ │ │ ├── FileAuthenticationOptions.cs
│ │ │ │ ├── FileCacheOptions.cs
│ │ │ │ ├── FileConfiguration.cs
│ │ │ │ ├── FileDynamicRoute.cs
│ │ │ │ ├── FileGlobalConfiguration.cs
│ │ │ │ ├── FileHostAndPort.cs
│ │ │ │ ├── FileHttpHandlerOptions.cs
│ │ │ │ ├── FileJwtConfig.cs
│ │ │ │ ├── FileLoadBalancerOptions.cs
│ │ │ │ ├── FileQoSOptions.cs
│ │ │ │ ├── FileRateLimitOptions.cs
│ │ │ │ ├── FileRateLimitRule.cs
│ │ │ │ ├── FileRoute.cs
│ │ │ │ ├── FileSecurityOptions.cs
│ │ │ │ ├── FileServiceDiscoveryProvider.cs
│ │ │ │ └── IRoute.cs
│ │ │ ├── FileConfigurationController.cs
│ │ │ ├── HeaderFindAndReplace.cs
│ │ │ ├── HttpHandlerOptionsBuilder.cs
│ │ │ ├── HttpHandlerOptions.cs
│ │ │ ├── IInternalConfiguration.cs
│ │ │ ├── InternalConfiguration.cs
│ │ │ ├── LoadBalancerOptionsBuilder.cs
│ │ │ ├── LoadBalancerOptions.cs
│ │ │ ├── Parser
│ │ │ │ ├── ClaimToThingConfigurationParser.cs
│ │ │ │ ├── IClaimToThingConfigurationParser.cs
│ │ │ │ ├── InstructionNotForClaimsError.cs
│ │ │ │ ├── NoInstructionsError.cs
│ │ │ │ └── ParsingConfigurationHeaderError.cs
│ │ │ ├── QoSOptions.cs
│ │ │ ├── RateLimitOptions.cs
│ │ │ ├── RateLimitRule.cs
│ │ │ ├── Repository
│ │ │ │ ├── ConsulFileConfigurationPollerOption.cs
│ │ │ │ ├── DiskFileConfigurationRepository.cs
│ │ │ │ ├── FileConfigurationPoller.cs
│ │ │ │ ├── IFileConfigurationPollerOptions.cs
│ │ │ │ ├── IFileConfigurationRepository.cs
│ │ │ │ ├── IInternalConfigurationRepository.cs
│ │ │ │ ├── InMemoryFileConfigurationPollerOptions.cs
│ │ │ │ └── InMemoryInternalConfigurationRepository.cs
│ │ │ ├── Route.cs
│ │ │ ├── RouteOptions.cs
│ │ │ ├── SecurityOptions.cs
│ │ │ ├── ServiceProviderConfiguration.cs
│ │ │ ├── Setter
│ │ │ │ ├── FileAndInternalConfigurationSetter.cs
│ │ │ │ └── IFileConfigurationSetter.cs
│ │ │ └── Validator
│ │ │ ├── ConfigurationValidationResult.cs
│ │ │ ├── FileConfigurationFluentValidator.cs
│ │ │ ├── FileGlobalConfigurationFluentValidator.cs
│ │ │ ├── FileQoSOptionsFluentValidator.cs
│ │ │ ├── FileValidationFailedError.cs
│ │ │ ├── HostAndPortValidator.cs
│ │ │ ├── IConfigurationValidator.cs
│ │ │ └── RouteFluentValidator.cs
│ │ ├── DependencyInjection
│ │ │ ├── AdministrationPath.cs
│ │ │ ├── ConfigurationBuilderExtensions.cs
│ │ │ ├── IAdministrationPath.cs
│ │ │ ├── IOcelotAdministrationBuilder.cs
│ │ │ ├── IOcelotBuilder.cs
│ │ │ ├── MergeOcelotJson.cs
│ │ │ ├── OcelotAdministrationBuilder.cs
│ │ │ ├── OcelotBuilder.cs
│ │ │ └── ServiceCollectionExtensions.cs
│ │ ├── DownstreamPathManipulation
│ │ │ ├── ChangeDownstreamPathTemplate.cs
│ │ │ ├── IChangeDownstreamPathTemplate.cs
│ │ │ └── Middleware
│ │ │ ├── ClaimsToDownstreamPathMiddleware.cs
│ │ │ └── ClaimsToDownstreamPathMiddlewareExtensions.cs
│ │ ├── DownstreamRouteFinder
│ │ │ ├── DownstreamRouteHolder.cs
│ │ │ ├── Finder
│ │ │ │ ├── DownstreamRouteCreator.cs
│ │ │ │ ├── DownstreamRouteFinder.cs
│ │ │ │ ├── DownstreamRouteProviderFactory.cs
│ │ │ │ ├── IDownstreamRouteProvider.cs
│ │ │ │ ├── IDownstreamRouteProviderFactory.cs
│ │ │ │ └── UnableToFindDownstreamRouteError.cs
│ │ │ ├── Middleware
│ │ │ │ ├── DownstreamRouteFinderMiddleware.cs
│ │ │ │ └── DownstreamRouteFinderMiddlewareExtensions.cs
│ │ │ └── UrlMatcher
│ │ │ ├── IPlaceholderNameAndValueFinder.cs
│ │ │ ├── IUrlPathToUrlTemplateMatcher.cs
│ │ │ ├── PlaceholderNameAndValue.cs
│ │ │ ├── RegExUrlMatcher.cs
│ │ │ ├── UrlMatch.cs
│ │ │ └── UrlPathPlaceholderNameAndValueFinder.cs
│ │ ├── DownstreamUrlCreator
│ │ │ ├── DownstreamPathPlaceholderReplacer.cs
│ │ │ ├── IDownstreamPathPlaceholderReplacer.cs
│ │ │ └── Middleware
│ │ │ ├── DownstreamUrlCreatorMiddleware.cs
│ │ │ └── DownstreamUrlCreatorMiddlewareExtensions.cs
│ │ ├── Errors
│ │ │ ├── Error.cs
│ │ │ ├── Middleware
│ │ │ │ ├── ExceptionHandlerMiddleware.cs
│ │ │ │ └── ExceptionHandlerMiddlewareExtensions.cs
│ │ │ ├── OcelotErrorCode.cs
│ │ │ └── QoS
│ │ │ └── RequestTimedOutError.cs
│ │ ├── Headers
│ │ │ ├── AddHeadersToRequest.cs
│ │ │ ├── AddHeadersToResponse.cs
│ │ │ ├── HttpContextRequestHeaderReplacer.cs
│ │ │ ├── HttpResponseHeaderReplacer.cs
│ │ │ ├── IAddHeadersToRequest.cs
│ │ │ ├── IAddHeadersToResponse.cs
│ │ │ ├── IHttpContextRequestHeaderReplacer.cs
│ │ │ ├── IHttpResponseHeaderReplacer.cs
│ │ │ ├── IRemoveOutputHeaders.cs
│ │ │ ├── Middleware
│ │ │ │ ├── ClaimsToHeadersMiddleware.cs
│ │ │ │ ├── ClaimsToHeadersMiddlewareExtensions.cs
│ │ │ │ ├── HttpHeadersTransformationMiddleware.cs
│ │ │ │ └── HttpHeadersTransformationMiddlewareExtensions.cs
│ │ │ └── RemoveOutputHeaders.cs
│ │ ├── Infrastructure
│ │ │ ├── CannotAddPlaceholderError.cs
│ │ │ ├── CannotRemovePlaceholderError.cs
│ │ │ ├── Claims
│ │ │ │ └── Parser
│ │ │ │ ├── CannotFindClaimError.cs
│ │ │ │ ├── ClaimsParser.cs
│ │ │ │ └── IClaimsParser.cs
│ │ │ ├── ConfigAwarePlaceholders.cs
│ │ │ ├── CouldNotFindPlaceholderError.cs
│ │ │ ├── DelayedMessage.cs
│ │ │ ├── Extensions
│ │ │ │ ├── ErrorListExtensions.cs
│ │ │ │ ├── NetCoreSupportExtensions.cs
│ │ │ │ ├── StringExtensions.cs
│ │ │ │ └── StringValuesExtensions.cs
│ │ │ ├── FrameworkDescription.cs
│ │ │ ├── IBus.cs
│ │ │ ├── IFrameworkDescription.cs
│ │ │ ├── InMemoryBus.cs
│ │ │ ├── IPlaceholders.cs
│ │ │ ├── Placeholders.cs
│ │ │ ├── RequestData
│ │ │ │ ├── CannotAddDataError.cs
│ │ │ │ ├── CannotFindDataError.cs
│ │ │ │ ├── HttpDataRepository.cs
│ │ │ │ └── IRequestScopedDataRepository.cs
│ │ │ ├── Wait.cs
│ │ │ └── Waiter.cs
│ │ ├── LoadBalancer
│ │ │ ├── LoadBalancers
│ │ │ │ ├── CookieStickySessionsCreator.cs
│ │ │ │ ├── CookieStickySessions.cs
│ │ │ │ ├── CouldNotFindLoadBalancerCreator.cs
│ │ │ │ ├── DelegateInvokingLoadBalancerCreator.cs
│ │ │ │ ├── ErrorInvokingLoadBalancerCreator.cs
│ │ │ │ ├── ILoadBalancerCreator.cs
│ │ │ │ ├── ILoadBalancer.cs
│ │ │ │ ├── ILoadBalancerFactory.cs
│ │ │ │ ├── ILoadBalancerHouse.cs
│ │ │ │ ├── Lease.cs
│ │ │ │ ├── LeastConnectionCreator.cs
│ │ │ │ ├── LeastConnection.cs
│ │ │ │ ├── LoadBalancerFactory.cs
│ │ │ │ ├── LoadBalancerHouse.cs
│ │ │ │ ├── NoLoadBalancerCreator.cs
│ │ │ │ ├── NoLoadBalancer.cs
│ │ │ │ ├── RoundRobinCreator.cs
│ │ │ │ ├── RoundRobin.cs
│ │ │ │ ├── ServicesAreEmptyError.cs
│ │ │ │ ├── ServicesAreNullError.cs
│ │ │ │ ├── StickySession.cs
│ │ │ │ └── UnableToFindLoadBalancerError.cs
│ │ │ └── Middleware
│ │ │ ├── LoadBalancingMiddleware.cs
│ │ │ └── LoadBalancingMiddlewareExtensions.cs
│ │ ├── Logging
│ │ │ ├── IOcelotLogger.cs
│ │ │ ├── IOcelotLoggerFactory.cs
│ │ │ ├── ITracer.cs
│ │ │ ├── OcelotDiagnosticListener.cs
│ │ │ ├── OcelotLogger.cs
│ │ │ └── OcelotLoggerFactory.cs
│ │ ├── Middleware
│ │ │ ├── BaseUrlFinder.cs
│ │ │ ├── ConfigurationMiddleware.cs
│ │ │ ├── DownstreamContextMiddlewareExtensions.cs
│ │ │ ├── DownstreamResponse.cs
│ │ │ ├── Header.cs
│ │ │ ├── HttpItemsExtensions.cs
│ │ │ ├── IBaseUrlFinder.cs
│ │ │ ├── OcelotMiddlewareConfigurationDelegate.cs
│ │ │ ├── OcelotMiddleware.cs
│ │ │ ├── OcelotMiddlewareExtensions.cs
│ │ │ ├── OcelotPipelineConfiguration.cs
│ │ │ ├── OcelotPipelineExtensions.cs
│ │ │ └── UnauthenticatedError.cs
│ │ ├── Multiplexer
│ │ │ ├── CouldNotFindAggregatorError.cs
│ │ │ ├── IDefinedAggregator.cs
│ │ │ ├── IDefinedAggregatorProvider.cs
│ │ │ ├── InMemoryResponseAggregatorFactory.cs
│ │ │ ├── IResponseAggregator.cs
│ │ │ ├── IResponseAggregatorFactory.cs
│ │ │ ├── MultiplexingMiddleware.cs
│ │ │ ├── MultiplexingMiddlewareExtensions.cs
│ │ │ ├── ServiceLocatorDefinedAggregatorProvider.cs
│ │ │ ├── SimpleJsonResponseAggregator.cs
│ │ │ └── UserDefinedResponseAggregator.cs
│ │ ├── Ocelot.csproj
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── QueryStrings
│ │ │ ├── AddQueriesToRequest.cs
│ │ │ ├── IAddQueriesToRequest.cs
│ │ │ └── Middleware
│ │ │ ├── ClaimsToQueryStringMiddleware.cs
│ │ │ └── ClaimsToQueryStringMiddlewareExtensions.cs
│ │ ├── RateLimit
│ │ │ ├── ClientRateLimitProcessor.cs
│ │ │ ├── ClientRequestIdentity.cs
│ │ │ ├── DistributedCacheRateLimitCounterHandler.cs
│ │ │ ├── IRateLimitCounterHandler.cs
│ │ │ ├── MemoryCacheRateLimitCounterHandler.cs
│ │ │ ├── Middleware
│ │ │ │ ├── ClientRateLimitMiddleware.cs
│ │ │ │ └── RateLimitMiddlewareExtensions.cs
│ │ │ ├── QuotaExceededError.cs
│ │ │ ├── RateLimitCore.cs
│ │ │ ├── RateLimitCounter.cs
│ │ │ └── RateLimitHeaders.cs
│ │ ├── Request
│ │ │ ├── Creator
│ │ │ │ ├── DownstreamRequestCreator.cs
│ │ │ │ └── IDownstreamRequestCreator.cs
│ │ │ ├── Mapper
│ │ │ │ ├── IRequestMapper.cs
│ │ │ │ ├── PayloadTooLargeError.cs
│ │ │ │ ├── RequestMapper.cs
│ │ │ │ ├── StreamHttpContent.cs
│ │ │ │ └── UnmappableRequestError.cs
│ │ │ └── Middleware
│ │ │ ├── DownstreamRequest.cs
│ │ │ ├── DownstreamRequestInitialiserMiddleware.cs
│ │ │ └── HttpRequestBuilderMiddlewareExtensions.cs
│ │ ├── Requester
│ │ │ ├── ConnectionToDownstreamServiceError.cs
│ │ │ ├── DelegatingHandlerHandlerFactory.cs
│ │ │ ├── GlobalDelegatingHandler.cs
│ │ │ ├── HttpExceptionToErrorMapper.cs
│ │ │ ├── IDelegatingHandlerHandlerFactory.cs
│ │ │ ├── IExceptionToErrorMapper.cs
│ │ │ ├── IHttpRequester.cs
│ │ │ ├── IMessageInvokerPool.cs
│ │ │ ├── ITracingHandler.cs
│ │ │ ├── ITracingHandlerFactory.cs
│ │ │ ├── MessageInvokerHttpRequester.cs
│ │ │ ├── MessageInvokerPool.cs
│ │ │ ├── Middleware
│ │ │ │ ├── HttpRequesterMiddleware.cs
│ │ │ │ └── HttpRequesterMiddlewareExtensions.cs
│ │ │ ├── NoQosDelegatingHandler.cs
│ │ │ ├── OcelotHttpTracingHandler.cs
│ │ │ ├── QoS
│ │ │ │ ├── IQosFactory.cs
│ │ │ │ ├── QosFactory.cs
│ │ │ │ └── UnableToFindQoSProviderError.cs
│ │ │ ├── QosDelegatingHandlerDelegate.cs
│ │ │ ├── RequestCanceledError.cs
│ │ │ ├── ServiceCollectionExtensions.cs
│ │ │ ├── TimeoutDelegatingHandler.cs
│ │ │ ├── TracingHandlerFactory.cs
│ │ │ └── UnableToCompleteRequestError.cs
│ │ ├── RequestId
│ │ │ ├── DefaultRequestIdKey.cs
│ │ │ ├── Middleware
│ │ │ │ ├── RequestIdMiddleware.cs
│ │ │ │ └── RequestIdMiddlewareExtensions.cs
│ │ │ └── RequestId.cs
│ │ ├── Responder
│ │ │ ├── ErrorsToHttpStatusCodeMapper.cs
│ │ │ ├── HttpContextResponder.cs
│ │ │ ├── IErrorsToHttpStatusCodeMapper.cs
│ │ │ ├── IHttpResponder.cs
│ │ │ └── Middleware
│ │ │ ├── ResponderMiddleware.cs
│ │ │ └── ResponderMiddlewareExtensions.cs
│ │ ├── Responses
│ │ │ ├── ErrorResponse.cs
│ │ │ ├── ErrorResponseGeneric.cs
│ │ │ ├── OkResponse.cs
│ │ │ ├── OkResponseGeneric.cs
│ │ │ ├── Response.cs
│ │ │ └── ResponseGeneric.cs
│ │ ├── Security
│ │ │ ├── IPSecurity
│ │ │ │ └── IPSecurityPolicy.cs
│ │ │ ├── ISecurityPolicy.cs
│ │ │ └── Middleware
│ │ │ ├── SecurityMiddleware.cs
│ │ │ └── SecurityMiddlewareExtensions.cs
│ │ ├── ServiceDiscovery
│ │ │ ├── Configuration
│ │ │ │ └── ServiceFabricConfiguration.cs
│ │ │ ├── IServiceDiscoveryProviderFactory.cs
│ │ │ ├── Providers
│ │ │ │ ├── ConfigurationServiceProvider.cs
│ │ │ │ ├── IServiceDiscoveryProvider.cs
│ │ │ │ └── ServiceFabricServiceDiscoveryProvider.cs
│ │ │ ├── ServiceDiscoveryFinderDelegate.cs
│ │ │ ├── ServiceDiscoveryProviderFactory.cs
│ │ │ └── UnableToFindServiceDiscoveryProviderError.cs
│ │ ├── Usings.cs
│ │ ├── Values
│ │ │ ├── DownstreamPath.cs
│ │ │ ├── DownstreamPathTemplate.cs
│ │ │ ├── Service.cs
│ │ │ ├── ServiceHostAndPort.cs
│ │ │ └── UpstreamPathTemplate.cs
│ │ └── WebSockets
│ │ ├── ClientWebSocketOptionsProxy.cs
│ │ ├── ClientWebSocketProxy.cs
│ │ ├── IClientWebSocket.cs
│ │ ├── IClientWebSocketOptions.cs
│ │ ├── IWebSocketsFactory.cs
│ │ ├── WebSocketsFactory.cs
│ │ ├── WebSocketsProxyMiddleware.cs
│ │ └── WebSocketsProxyMiddlewareExtensions.cs
│ ├── Ocelot.Administration
│ │ ├── IdentityServerConfigurationCreator.cs
│ │ ├── IdentityServerConfiguration.cs
│ │ ├── IdentityServerMiddlewareConfigurationProvider.cs
│ │ ├── IIdentityServerConfiguration.cs
│ │ ├── Ocelot.Administration.csproj
│ │ ├── OcelotBuilderExtensions.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Usings.cs
│ ├── Ocelot.Cache.CacheManager
│ │ ├── OcelotBuilderExtensions.cs
│ │ ├── Ocelot.Cache.CacheManager.csproj
│ │ ├── OcelotCacheManagerCache.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Usings.cs
│ ├── Ocelot.Provider.Consul
│ │ ├── ConsulClientFactory.cs
│ │ ├── Consul.cs
│ │ ├── ConsulFileConfigurationRepository.cs
│ │ ├── ConsulMiddlewareConfigurationProvider.cs
│ │ ├── ConsulProviderFactory.cs
│ │ ├── ConsulRegistryConfiguration.cs
│ │ ├── IConsulClientFactory.cs
│ │ ├── OcelotBuilderExtensions.cs
│ │ ├── Ocelot.Provider.Consul.csproj
│ │ ├── PollConsul.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── UnableToSetConfigInConsulError.cs
│ │ └── Usings.cs
│ ├── Ocelot.Provider.Eureka
│ │ ├── Eureka.cs
│ │ ├── EurekaMiddlewareConfigurationProvider.cs
│ │ ├── EurekaProviderFactory.cs
│ │ ├── OcelotBuilderExtensions.cs
│ │ ├── Ocelot.Provider.Eureka.csproj
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Usings.cs
│ ├── Ocelot.Provider.Kubernetes
│ │ ├── EndPointClientV1.cs
│ │ ├── IEndPointClient.cs
│ │ ├── IKubeApiClientFactory.cs
│ │ ├── KubeApiClientFactory.cs
│ │ ├── Kube.cs
│ │ ├── KubeRegistryConfiguration.cs
│ │ ├── KubernetesProviderFactory.cs
│ │ ├── OcelotBuilderExtensions.cs
│ │ ├── Ocelot.Provider.Kubernetes.csproj
│ │ ├── PollKube.cs
│ │ └── Usings.cs
│ ├── Ocelot.Provider.Polly
│ │ ├── Interfaces
│ │ │ └── IPollyQoSResiliencePipelineProvider.cs
│ │ ├── OcelotBuilderExtensions.cs
│ │ ├── Ocelot.Provider.Polly.csproj
│ │ ├── OcelotResiliencePipelineKey.cs
│ │ ├── PollyQoSProviderBase.cs
│ │ ├── PollyQoSResiliencePipelineProvider.cs
│ │ ├── PollyResiliencePipelineDelegatingHandler.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Usings.cs
│ │ └── v7
│ │ ├── IPollyQoSProvider.cs
│ │ ├── OcelotBuilderExtensions.cs
│ │ ├── PollyPoliciesDelegatingHandler.cs
│ │ ├── PollyPolicyWrapper.cs
│ │ └── PollyQoSProvider.cs
│ ├── Ocelot.Tracing.Butterfly
│ │ ├── ButterflyTracer.cs
│ │ ├── OcelotBuilderExtensions.cs
│ │ ├── Ocelot.Tracing.Butterfly.csproj
│ │ └── Usings.cs
│ └── Ocelot.Tracing.OpenTracing
│ ├── OcelotBuilderExtensions.cs
│ ├── Ocelot.Tracing.OpenTracing.csproj
│ ├── OpenTracingTracer.cs
│ ├── stylecop.json
│ └── Usings.cs
└── test
├── Ocelot.AcceptanceTests
│ ├── AggregateTests.cs
│ ├── appsettings.json
│ ├── appsettings.product.json
│ ├── Authentication
│ │ ├── AuthenticationSteps.cs
│ │ ├── AuthenticationTests.cs
│ │ └── MultipleAuthSchemesFeatureTests.cs
│ ├── AuthorizationTests.cs
│ ├── BearerToken.cs
│ ├── ButterflyTracingTests.cs
│ ├── Caching
│ │ ├── CachingTests.cs
│ │ └── InMemoryJsonHandle.cs
│ ├── CancelRequestTests.cs
│ ├── CannotStartOcelotTests.cs
│ ├── CaseSensitiveRoutingTests.cs
│ ├── ClaimsToDownstreamPathTests.cs
│ ├── ClaimsToHeadersForwardingTests.cs
│ ├── ClaimsToQueryStringForwardingTests.cs
│ ├── ClientRateLimitTests.cs
│ ├── ConfigurationInConsulTests.cs
│ ├── ConfigurationMergeTests.cs
│ ├── ConfigurationReloadTests.cs
│ ├── ConsulConfigurationInConsulTests.cs
│ ├── ConsulWebSocketTests.cs
│ ├── ContentTests.cs
│ ├── CustomMiddlewareTests.cs
│ ├── EurekaServiceDiscoveryTests.cs
│ ├── GzipTests.cs
│ ├── HeaderTests.cs
│ ├── HttpDelegatingHandlersTests.cs
│ ├── HttpTests.cs
│ ├── LoadBalancerTests.cs
│ ├── LogLevelTests.cs
│ ├── MethodTests.cs
│ ├── mycert.pfx
│ ├── Ocelot.AcceptanceTests.csproj
│ ├── OpenTracingTests.cs
│ ├── PollyQoSTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ReasonPhraseTests.cs
│ ├── Request
│ │ ├── RequestMapperTests.cs
│ │ └── StreamContentTests.cs
│ ├── Requester
│ │ └── PayloadTooLargeTests.cs
│ ├── RequestIdTests.cs
│ ├── ResponseCodeTests.cs
│ ├── ReturnsErrorTests.cs
│ ├── RoutingTests.cs
│ ├── RoutingWithQueryStringTests.cs
│ ├── SequentialTests.cs
│ ├── ServiceDiscoveryTests.cs
│ ├── ServiceFabricTests.cs
│ ├── ServiceHandler.cs
│ ├── SslTests.cs
│ ├── StartupTests.cs
│ ├── Steps.cs
│ ├── StickySessionsTests.cs
│ ├── TwoDownstreamServicesTests.cs
│ ├── UpstreamHostTests.cs
│ ├── Usings.cs
│ └── WebSocketTests.cs
├── Ocelot.Benchmarks
│ ├── AllTheThingsBenchmarks.cs
│ ├── DownstreamRouteFinderMiddlewareBenchmarks.cs
│ ├── ExceptionHandlerMiddlewareBenchmarks.cs
│ ├── MsLoggerBenchmarks.cs
│ ├── Ocelot.Benchmarks.csproj
│ ├── PayloadBenchmarks.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ResponseBenchmarks.cs
│ ├── SerilogBenchmarks.cs
│ ├── UrlPathToUrlPathTemplateMatcherBenchmarks.cs
│ └── Usings.cs
├── Ocelot.IntegrationTests
│ ├── AdministrationTests.cs
│ ├── appsettings.json
│ ├── BearerToken.cs
│ ├── CacheManagerTests.cs
│ ├── HeaderTests.cs
│ ├── mycert.pfx
│ ├── Ocelot.IntegrationTests.csproj
│ ├── ocelot.json
│ ├── peers.json
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ThreadSafeHeadersTests.cs
│ └── Usings.cs
├── Ocelot.ManualTest
│ ├── appsettings.json
│ ├── docker-compose.yaml
│ ├── Dockerfile
│ ├── idsrv3test.pfx
│ ├── mycert.pfx
│ ├── ocelot.json
│ ├── Ocelot.ManualTest.csproj
│ ├── Ocelot.postman_collection.json
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── tempkey.rsa
│ ├── Usings.cs
│ └── web.config
├── Ocelot.Testing
│ ├── Ocelot.Testing.csproj
│ └── PortFinder.cs
└── Ocelot.UnitTests
├── Administration
│ └── OcelotAdministrationBuilderTests.cs
├── appsettings.json
├── Authentication
│ └── AuthenticationMiddlewareTests.cs
├── Authorization
│ ├── AuthorizationMiddlewareTests.cs
│ └── ClaimsAuthorizerTests.cs
├── Cache
│ ├── AspMemoryCacheTests.cs
│ ├── DefaultCacheKeyGeneratorTests.cs
│ ├── OutputCacheMiddlewareTests.cs
│ └── RegionCreatorTests.cs
├── CacheManager
│ ├── OcelotBuilderExtensionsTests.cs
│ ├── OcelotCacheManagerCache.cs
│ └── OutputCacheMiddlewareRealCacheTests.cs
├── Claims
│ ├── AddClaimsToRequestTests.cs
│ └── ClaimsToClaimsMiddlewareTests.cs
├── Configuration
│ ├── AggregatesCreatorTests.cs
│ ├── AuthenticationOptionsCreatorTests.cs
│ ├── ChangeTracking
│ │ ├── OcelotConfigurationChangeTokenSourceTests.cs
│ │ └── OcelotConfigurationChangeTokenTests.cs
│ ├── ClaimsToThingCreatorTests.cs
│ ├── ClaimToThingConfigurationParserTests.cs
│ ├── ConfigurationCreatorTests.cs
│ ├── DiskFileConfigurationRepositoryTests.cs
│ ├── DownstreamAddressesCreatorTests.cs
│ ├── DynamicsCreatorTests.cs
│ ├── FileConfigurationPollerTests.cs
│ ├── FileConfigurationSetterTests.cs
│ ├── FileInternalConfigurationCreatorTests.cs
│ ├── FileModels
│ │ └── FileQoSOptionsTests.cs
│ ├── HashCreationTests.cs
│ ├── HeaderFindAndReplaceCreatorTests.cs
│ ├── HttpHandlerOptionsCreatorTests.cs
│ ├── InMemoryConfigurationRepositoryTests.cs
│ ├── LoadBalancerOptionsCreatorTests.cs
│ ├── QoSOptionsCreatorTests.cs
│ ├── RateLimitOptionsCreatorTests.cs
│ ├── RequestIdKeyCreatorTests.cs
│ ├── RouteKeyCreatorTests.cs
│ ├── RouteOptionsCreatorTests.cs
│ ├── RoutesCreatorTests.cs
│ ├── SecurityOptionsCreatorTests.cs
│ ├── ServiceProviderCreatorTests.cs
│ ├── UpstreamTemplatePatternCreatorTests.cs
│ ├── Validation
│ │ ├── FileConfigurationFluentValidatorTests.cs
│ │ ├── FileQoSOptionsFluentValidatorTests.cs
│ │ ├── HostAndPortValidatorTests.cs
│ │ └── RouteFluentValidatorTests.cs
│ └── VersionCreatorTests.cs
├── Consul
│ ├── AgentServiceExtensions.cs
│ ├── ConsulFileConfigurationRepositoryTests.cs
│ ├── ConsulServiceDiscoveryProviderTests.cs
│ ├── OcelotBuilderExtensionsTests.cs
│ ├── PollingConsulServiceDiscoveryProviderTests.cs
│ └── ProviderFactoryTests.cs
├── Controllers
│ ├── FileConfigurationControllerTests.cs
│ └── OutputCacheControllerTests.cs
├── DependencyInjection
│ ├── ConfigurationBuilderExtensionsTests.cs
│ ├── OcelotBuilderTests.cs
│ └── ServiceCollectionExtensionsTests.cs
├── DownstreamPathManipulation
│ ├── ChangeDownstreamPathTemplateTests.cs
│ └── ClaimsToDownstreamPathMiddlewareTests.cs
├── DownstreamRouteFinder
│ ├── DownstreamRouteCreatorTests.cs
│ ├── DownstreamRouteFinderMiddlewareTests.cs
│ ├── DownstreamRouteFinderTests.cs
│ ├── DownstreamRouteProviderFactoryTests.cs
│ └── UrlMatcher
│ ├── RegExUrlMatcherTests.cs
│ └── UrlPathPlaceholderNameAndValueFinderTests.cs
├── DownstreamUrlCreator
│ ├── DownstreamPathPlaceholderReplacerTests.cs
│ └── DownstreamUrlCreatorMiddlewareTests.cs
├── Errors
│ ├── ErrorTests.cs
│ └── ExceptionHandlerMiddlewareTests.cs
├── Eureka
│ ├── EurekaMiddlewareConfigurationProviderTests.cs
│ ├── EurekaProviderFactoryTests.cs
│ ├── EurekaServiceDiscoveryProviderTests.cs
│ └── OcelotPipelineExtensionsTests.cs
├── FileUnitTest.cs
├── Headers
│ ├── AddHeadersToRequestClaimToThingTests.cs
│ ├── AddHeadersToRequestPlainTests.cs
│ ├── AddHeadersToResponseTests.cs
│ ├── ClaimsToHeadersMiddlewareTests.cs
│ ├── HttpContextRequestHeaderReplacerTests.cs
│ ├── HttpHeadersTransformationMiddlewareTests.cs
│ ├── HttpResponseHeaderReplacerTests.cs
│ └── RemoveHeadersTests.cs
├── Infrastructure
│ ├── ClaimParserTests.cs
│ ├── ConfigAwarePlaceholdersTests.cs
│ ├── HttpDataRepositoryTests.cs
│ ├── InMemoryBusTests.cs
│ ├── PlaceholdersTests.cs
│ ├── ScopesAuthorizerTests.cs
│ └── StringExtensionsTests.cs
├── Kubernetes
│ ├── KubeProviderFactoryTests.cs
│ ├── KubeTests.cs
│ ├── OcelotBuilderExtensionsTests.cs
│ └── PollKubeTests.cs
├── LoadBalancer
│ ├── CookieStickySessionsCreatorTests.cs
│ ├── CookieStickySessionsTests.cs
│ ├── DelegateInvokingLoadBalancerCreatorTests.cs
│ ├── LeastConnectionCreatorTests.cs
│ ├── LeastConnectionTests.cs
│ ├── LoadBalancerFactoryTests.cs
│ ├── LoadBalancerHouseTests.cs
│ ├── LoadBalancerMiddlewareTests.cs
│ ├── LoadBalancerOptionsTests.cs
│ ├── NoLoadBalancerCreatorTests.cs
│ ├── NoLoadBalancerTests.cs
│ ├── RoundRobinCreatorTests.cs
│ └── RoundRobinTests.cs
├── Logging
│ ├── OcelotDiagnosticListenerTests.cs
│ └── OcelotLoggerTests.cs
├── Middleware
│ ├── BaseUrlFinderTests.cs
│ ├── OcelotPipelineExtensionsTests.cs
│ └── OcelotPiplineBuilderTests.cs
├── Multiplexing
│ ├── DefinedAggregatorProviderTests.cs
│ ├── MultiplexingMiddlewareTests.cs
│ ├── ResponseAggregatorFactoryTests.cs
│ ├── SimpleJsonResponseAggregatorTests.cs
│ └── UserDefinedResponseAggregatorTests.cs
├── mycert.pfx
├── Ocelot.UnitTests.csproj
├── Polly
│ ├── OcelotBuilderExtensionsTests.cs
│ ├── PollyPoliciesDelegatingHandlerTests.cs
│ ├── PollyQoSProviderTests.cs
│ ├── PollyQoSResiliencePipelineProviderTests.cs
│ └── PollyResiliencePipelineDelegatingHandlerTests.cs
├── Properties
│ └── AssemblyInfo.cs
├── QueryStrings
│ ├── AddQueriesToRequestTests.cs
│ └── ClaimsToQueryStringMiddlewareTests.cs
├── RateLimit
│ └── ClientRateLimitMiddlewareTests.cs
├── Repository
│ └── ScopedRequestDataRepositoryTests.cs
├── Request
│ ├── Creator
│ │ └── DownstreamRequestCreatorTests.cs
│ ├── DownstreamRequestInitialiserMiddlewareTests.cs
│ ├── DownstreamRequestTests.cs
│ └── Mapper
│ ├── RequestMapperTests.cs
│ └── StreamHttpContentTests.cs
├── Requester
│ ├── DelegatingHandlerHandlerProviderFactoryTests.cs
│ ├── FakeDelegatingHandler.cs
│ ├── HttpExceptionToErrorMapperTests.cs
│ ├── HttpRequesterMiddlewareTests.cs
│ ├── MessageInvokerPoolTests.cs
│ ├── QoSFactoryTests.cs
│ └── TracingHandlerFactoryTests.cs
├── RequestId
│ └── RequestIdMiddlewareTests.cs
├── Responder
│ ├── AnyError.cs
│ ├── ErrorsToHttpStatusCodeMapperTests.cs
│ ├── HttpContextResponderTests.cs
│ └── ResponderMiddlewareTests.cs
├── Security
│ ├── IPSecurityPolicyTests.cs
│ └── SecurityMiddlewareTests.cs
├── ServiceDiscovery
│ ├── ConfigurationServiceProviderTests.cs
│ ├── ServiceDiscoveryProviderFactoryTests.cs
│ ├── ServiceFabricServiceDiscoveryProviderTests.cs
│ └── ServiceRegistryTests.cs
├── UnitTest.cs
├── UnitTests.runsettings
├── Usings.cs
└── WebSockets
├── MockWebSocket.cs
└── WebSocketsProxyMiddlewareTests.cs
194 directories, 880 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论