信息发布→ 登录 注册 退出

ASP.NET Core Api网关Ocelot的使用初探

发布时间:2026-01-11

点击量:
目录
  • 概述
  • 代码实现
    • 1、新建api客户端1
    • 2、新建api 网关test
    • 3、nuget安装Ocelot
    • 4、Program文件添加ConfigureAppConfiguration
    • 5、Startup文件配置
    • 6、网关项目下添加文件ocelot.json
    • 7、2个项目运行,测试
  • 代码地址

    概述

    Ocelot面向使用.NET运行微型服务/面向服务的体系结构的人员,这些体系结构需要在系统中具有统一的入口点。特别是我想与IdentityServer参考和承载令牌轻松集成。Ocelot是按特定顺序排列的一堆中间件。Ocelot将HttpRequest对象操作到由其配置指定的状态,直到到达请求构建器中间件,在该中间件中它创建一个HttpRequestMessage对象,该对象用于向下游服务发出请求。发出请求的中间件是Ocelot管道中的最后一件事。它不会调用下一个中间件。有一块中间件可将HttpResponseMessage映射到HttpResponse对象,然后将其返回给客户端。基本上,它具有许多其他功能。

    代码实现

    1、新建api客户端1

    2、新建api 网关test

    3、nuget安装Ocelot

    4、Program文件添加ConfigureAppConfiguration

    public class Program
     {
      public static void Main(string[] args)
      {
       CreateHostBuilder(args).Build().Run();
      }
    
      public static IHostBuilder CreateHostBuilder(string[] args) =>
       Host.CreateDefaultBuilder(args)
       .ConfigureAppConfiguration(conf =>
       {
        conf.AddJsonFile("ocelot.json", false, true);
       })
        .ConfigureWebHostDefaults(webBuilder =>
        {
         webBuilder.UseStartup<Startup>();
        });
     }

    5、Startup文件配置

     services.AddOcelot(Configuration);
     app.UseOcelot().Wait();

    6、网关项目下添加文件ocelot.json

    {
     "ReRoutes": [
     {
      "DownstreamPathTemplate": "/api/WeatherForecast/GetList",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
      {
       "Host": "localhost",
       "Port": 5000
      }
      ],
      "UpstreamPathTemplate": "/GetList",
      "UpstreamHttpMethod": [ "Get" ]
     },
    
     {
      "DownstreamPathTemplate": "/{everything}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
      {
       "Host": "localhost",
       "Port": 5000
      }
      ],
      "UpstreamPathTemplate": "/{everything}",
      "UpstreamHttpMethod": [ "Post" ]
     },
     {
      "DownstreamPathTemplate": "/api/WeatherForecast/GetModel?id={s1}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
      {
       "Host": "localhost",
       "Port": 5000
      }
      ],
      "UpstreamPathTemplate": "/GetModel?id={s1}",
      "UpstreamHttpMethod": [ "Get" ]
     }
     ]
    }

    7、2个项目运行,测试

    代码地址

    https://gitee.com/conanOpenSource_admin/Example/commit/b3b5a6b15a060b46c5ecd2ea31f0d36791cda18c

    以上就是ASP.NET Core Api网关Ocelot的使用初探的详细内容,更多关于ASP.NET Core Api网关Ocelot的资料请关注其它相关文章!

    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!