Mostrando las entradas con la etiqueta OCELOT. Mostrar todas las entradas
Mostrando las entradas con la etiqueta OCELOT. Mostrar todas las entradas

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




jueves, 18 de noviembre de 2021

Ocelot error The remote certificate is invalid according to the validation procedure

 Este error es producido por el gateway de ocelot  cuando se instala un self certificate, por lo que hay que configurar el archivo json de ocelot para que acepte cualquier certificado (no se recomienda para ambientes productivos).

"Routes": [
    {
      "DownstreamPathTemplate": "/api/Tareas/{id}",
      "DownstreamScheme": "https",
      "DownstreamHostAndPorts": [
        {
          "Host": "myDebServerName",
          "Port": 444
        }
      ],
      "UpstreamPathTemplate": "/api/tareitas/{id}",
      "UpstreamHttpMethod": [ "POST", "PUT", "GET" ],

      "DangerousAcceptAnyServerCertificateValidator": true
    }
Gracias a David Ayala y a stackoverflow por el tip.
.net core - Ocelot Disable SSL validation with "DangerousAcceptAnyServerCertificateValidator" - Stack Overflow

Code4Fun!,
Juan Manuel Herrera Ocheita