domingo, 28 de noviembre de 2021

Definición de Ocelot gateway en una Api Web Mínima Net 6

Para los amigos que ya estan pasando sus aplicaciones a Net 6 o bien estan revisando los temas relacionados con el nuevo Framework Net 6.

Las Apis Minimas son una nueva mejora introducida en esta versión 6. que  Minimiza el código para facilitar la legibilidad, hacerlo más eficiente y fácil.

Aquí las 6 líneas para definir el Gateway de Ocelot en Net 6.

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddJsonFile($"ocelot.json", optional: false, reloadOnChange: true);

builder.Services.AddOcelot();

var app = builder.Build();

app.UseOcelot();

app.Run();

En el archivo del proyeto agregamos algunos Global Using para reducir la cantidad de líneas.  A continuación la sección agregada de los Goblal Using:

  <ItemGroup>

    <Using Include="Ocelot.DependencyInjection"/>

    <Using Include="Ocelot.Middleware"/>

  </ItemGroup>


Y por ultimo recordad amigos que el archivo json de ocelot según las especificaciones a 28/11/2021 deberaís utilizar Routes en vez de Reroutes y que la parte de configuración de DownstreamHostAndPorts va unidad y es un arreglo de objetos. como muestra abajo:

"DownstreamHostAndPorts": [

        {

          "Host": "localhost",

          "Port": 9901

        }

      ]

Archivo completo de  ocelot.json básico a continuación:

{

  "Routes": [

    {

      "DownstreamPathTemplate": "/api/customers",

      "DownstreamScheme": "https",

      "DownstreamHostAndPorts": [

        {

          "Host": "localhost",

          "Port": 9901

        }

      ],

      "UpstreamPathTemplate": "/customers",

      "UpstreamHttpMethod": [ "Get" ]

    },

    {

      "DownstreamPathTemplate": "/api/products",

      "DownstreamScheme": "https",

      "DownstreamHostAndPorts": [

        {

          "Host": "localhost",

          "Port": 9902

        }

      ],

      "UpstreamPathTemplate": "/products",

      "UpstreamHttpMethod": [ "Get" ]

    }

  ],

  "GlobalConfiguration": {

    "RequestIdKey": "OcRequestId",

    "AdministrationPath": "/administration"

  }

}

Net64Fun!,

Juan Manuel Herrera Ocheita




No hay comentarios.: