ocelote es una herramienta de puerta de enlace .netcore, basado en el uso de
1, crear tres proyectos .netcore WebAPI
2. Crear un proyecto en el marco de la puerta
{
"Vuelve a enrutar": [
{
"DownstreamPathTemplate": "/ api / usuario",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Puerto": 5001
}
],
"UpstreamPathTemplate ": "/ webapi1 / usuario",
"UpstreamHttpMethod": [ "Obtener"]
},
{
"DownstreamPathTemplate": "/ api / usuario",
"DownstreamScheme": "http",
"DownstreamHostAndPorts":[
{
"Host": "localhost",
"Puerto": 5002
}
],
"UpstreamPathTemplate": "/ webapi2 / usuario",
"UpstreamHttpMethod": [ "Obtener"]
}
]
}
Puerto configurado para iniciarse 6000
Modificar StartUp.cs
usando System; usando System.Collections.Generic; usando System.Linq; usando System.Threading.Tasks; usando Microsoft.AspNetCore.Builder; usando Microsoft.AspNetCore.Hosting; usando Microsoft.AspNetCore.HttpsPolicy; usando Microsoft.AspNetCore.Mvc; usando Microsoft.Extensions.Configuration; usando Microsoft.Extensions.DependencyInjection; usando Microsoft.Extensions.Hosting; usando Microsoft.Extensions.Logging; usando Ocelot.DependencyInjection; usando Ocelot.Middleware; utilizandoIHostingEnvironment = Microsoft.AspNetCore.Hosting.IHostingEnvironment; espacio de nombres WebApplicationGate { pública clase de inicio { pública puesta en marcha (configuración IConfiguration) { Configuración = configuración; } Pública Configuración IConfiguration { get ; } // Este método es llamado por el tiempo de ejecución. Utilizar este método para agregar servicios al contenedor. públicos vacíos ConfigureServices (servicios) IServiceCollection { services.AddMvc (opciones=> Options.EnableEndpointRouting = falso ); services.AddOcelot ( nuevo ConfigurationBuilder () .AddJsonFile ( " configuration.json " ) .build ()); } // Este método es llamado por el tiempo de ejecución. Utilizar este método para configurar la canalización de solicitud HTTP. pública asíncrono vacío Configurar (IApplicationBuilder aplicación, IHostingEnvironment env) { si (env.IsDevelopment ()) { app.UseDeveloperExceptionPage (); } Esperar app.UseOcelot (); app.UseMvc (); } } }
3. Crear un controlador en el punto 1, cambie el puerto de inicio 5001
de espacio de nombres WebApplication1.Controllers { [ruta ( " API / [controlador] " )] [ApiController] pública clase UserController: ControllerBase { [HttpGet] pública IEnumerable < string > GetUserName () { volver nueva cadena [] { " 张三" }; } } }
4, también en el proyecto de creación de un 2, cambiar el puerto de inicio 5002
de espacio de nombres WebApplication1.Controllers { [ruta ( " API / [controlador] " )] [ApiController] pública clase UserController: ControllerBase { [HttpGet] pública IEnumerable < string > GetUserName () { volver nueva cadena [] { " 李四" }; } } }
5, iniciar el proyecto, visita
http: // localhost: 6000 / webapi1 / Usuario
saltar automáticamente a
https: // localhost: 5001 / api / Usuario