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