Ocelot est un middleware pour .net core qui permet de créer une « gateway » (un point d’entrée) unique pour un ensemble de micro service. C’est une sorte de router.

Par exemple, admetons que l’on est deux services Asp.Net Core (Orders, Customers) qui tournent respectivement sur :

  • localhost:7001
  • localhost:7002

Chacun ayant un simple controler « racine » qui retourne n’importe quoi.

Ils sont à ce stade joigniables uniquement via ces url. On veut maintenant qu’ils soient tous accesibles depuis localhost:7000 :

  • localhost:7000/orders
  • localhost:7000/customers

Pour cela on va ajouter le middleware Ocelot https://ocelot.readthedocs.io/en/latest/introduction/bigpicture.html et le configurer avec un fichier de configuration suivant :

{
	"ReRoutes": [
		{
      "DownstreamPathTemplate": "/api/orders",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 7000
        }
      ],
      "UpstreamPathTemplate": "/orders",     
    },
		{
      "DownstreamPathTemplate": "/api/customers",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 7000
        }
      ],
      "UpstreamPathTemplate": "/customers",     
    },
	],
  "GlobalConfiguration": {
		"BaseUrl"; "<http://localhost7000>"
  }
}

Et hope, on a nos deux services accessible depuis le même point d’entrée (gateway) localhost:7000

Plus de précision avec cette vidéo :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée Champs requis marqués avec *

Poster commentaire