dotnet 7.0 API Gateway
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
TGP 3dcc6b6d14 Merge branch 'feat/fix-build' into develop 3 years ago
.circleci +semver: upgrade to net5.0 (#1390) 4 years ago
.github docker build works on windows 5 years ago
docker +semver: upgrade to net5.0 (#1390) 4 years ago
docs +semver: upgrade to net5.0 (#1390) 4 years ago
images add ocelot logo to repo 3 years ago
postman Make Ocelot work with service fabric DNS and naming service for guest exe and stateless (#242) 7 years ago
samples +semver: upgrade to net5.0 (#1390) 4 years ago
src Merge branch 'feat/fix-build' into develop 3 years ago
test +semver: upgrade to net5.0 (#1390) 4 years ago
.dockerignore dont need this 4 years ago
.editorconfig Remove Ocelot specific Middleware to make Ocelot more compatible with kestrel middleware and get ready for YARP 5 years ago
.gitattributes Remove Ocelot specific Middleware to make Ocelot more compatible with kestrel middleware and get ready for YARP 5 years ago
.gitignore Dockerfile build (#727) 6 years ago
Directory.Build.props Updated to netcoreapp3.1 5 years ago
GitVersion.yml hacked together load balancing reroutes in fileconfig (#211) 7 years ago
LICENSE.md hacked together load balancing reroutes in fileconfig (#211) 7 years ago
Makefile +semver: upgrade to net5.0 (#1390) 4 years ago
Ocelot.sln +semver: upgrade to net5.0 (#1390) 4 years ago
README.md add ocelot logo to repo 3 years ago
build.cake use new deletedir api 3 years ago
build.ps1 build finally working....MAGIC 4 years ago
build.sh build finally working....MAGIC 4 years ago
codeanalysis.ruleset Turn some of the rules back on. 7 years ago
releasenotes.md #1150: added simple way to get release notes using cake and git 5 years ago

README.md

Ocelot Logo

CircleCI

Coverage Status

Slack

Ocelot

Ocelot is a .NET API Gateway. This project is aimed at people using .NET running a micro services / service oriented architecture that need a unified point of entry into their system. However it will work with anything that speaks HTTP and run on any platform that ASP.NET Core supports.

In particular I want easy integration with IdentityServer reference and bearer tokens.

We have been unable to find this in my current workplacewithout having to write our own Javascript middlewares to handle the IdentityServer reference tokens. We would rather use the IdentityServer code that already existsto do this.

Ocelot is a bunch of middlewares in a specific order.

Ocelot manipulates the HttpRequest object into a state specified by its configuration until it reaches a request builder middleware where it creates a HttpRequestMessage object which is used to make a request to a downstream service. The middleware that makes the request is the last thing in the Ocelot pipeline. It does not call the next middleware. The response from the downstream service is retrieved as the requests goes back up the Ocelot pipeline. There is a piece of middleware that maps the HttpResponseMessage onto the HttpResponse object and that is returned to the client. That is basically it with a bunch of other features!

Features

A quick list of Ocelot's capabilities for more information see the documentation.

  • Routing
  • Request Aggregation
  • Service Discovery with Consul & Eureka
  • Service Fabric
  • Kubernetes
  • WebSockets
  • Authentication
  • Authorization
  • Rate Limiting
  • Caching
  • Retry policies / QoS
  • Load Balancing
  • Logging / Tracing / Correlation
  • Headers / Method / Query String / Claims Transformation
  • Custom Middleware / Delegating Handlers
  • Configuration / Administration REST API
  • Platform / Cloud Agnostic

How to install

Ocelot is designed to work with ASP.NET Core only and it targets netcoreapp3.1.

Install Ocelot and it's dependencies using NuGet.

Install-Package Ocelot

Or via the .NET Core CLI:

dotnet add package ocelot

All versions can be found here

Documentation

Please click here for the Ocelot documentation. This includes lots of information and will be helpful if you want to understand the features Ocelot currently offers.

Coming up

You can see what we are working on here.

Contributing

We love to receive contributions from the community so please keep them coming :)

Pull requests, issues and commentary welcome!

Please complete the relevant template for issues and PRs. Sometimes it's worth getting in touch with us to discuss changes before doing any work incase this is something we are already doing or it might not make sense. We can also give advice on the easiest way to do things :)

Finally we mark all existing issues as help wanted, small, medium and large effort. If you want to contribute for the first time I suggest looking at a help wanted & small effort issue :)

Donate

If you think this project is worth supporting financially please make a contribution using the button below! We use the money to run the https://threemammals.com website.

Support via PayPal

Things that are currently annoying me

Get more details at codescene.io.