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"
}
}