文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ASP.NET Core Api网关Ocelot初探

2024-12-03 09:27

关注

本文转载自微信公众号「UP技术控」,作者conan5566。转载本文请联系UP技术控公众号。  

 概述

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

代码实现

1、新建api客户端1

2、新建api 网关test

3、nuget安装Ocelot

4、Program文件添加ConfigureAppConfiguration

  1. public class Program 
  2.     { 
  3.         public static void Main(string[] args) 
  4.         { 
  5.             CreateHostBuilder(args).Build().Run(); 
  6.         } 
  7.  
  8.         public static IHostBuilder CreateHostBuilder(string[] args) => 
  9.             Host.CreateDefaultBuilder(args) 
  10.             .ConfigureAppConfiguration(conf => 
  11.             { 
  12.                 conf.AddJsonFile("ocelot.json"falsetrue); 
  13.             }) 
  14.                 .ConfigureWebHostDefaults(webBuilder => 
  15.                 { 
  16.                     webBuilder.UseStartup(); 
  17.                 }); 
  18.     } 

5、Startup文件配置

  1. services.AddOcelot(Configuration); 
  2.  
  3. app.UseOcelot().Wait(); 

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

  1.   "ReRoutes": [ 
  2.     { 
  3.       "DownstreamPathTemplate""/api/WeatherForecast/GetList"
  4.       "DownstreamScheme""http"
  5.       "DownstreamHostAndPorts": [ 
  6.         { 
  7.           "Host""localhost"
  8.           "Port": 5000 
  9.         } 
  10.       ], 
  11.       "UpstreamPathTemplate""/GetList"
  12.       "UpstreamHttpMethod": [ "Get" ] 
  13.     }, 
  14.  
  15.     { 
  16.       "DownstreamPathTemplate""/{everything}"
  17.       "DownstreamScheme""http"
  18.       "DownstreamHostAndPorts": [ 
  19.         { 
  20.           "Host""localhost"
  21.           "Port": 5000 
  22.         } 
  23.       ], 
  24.       "UpstreamPathTemplate""/{everything}"
  25.       "UpstreamHttpMethod": [ "Post" ] 
  26.     }, 
  27.     { 
  28.       "DownstreamPathTemplate""/api/WeatherForecast/GetModel?id={s1}"
  29.       "DownstreamScheme""http"
  30.       "DownstreamHostAndPorts": [ 
  31.         { 
  32.           "Host""localhost"
  33.           "Port": 5000 
  34.         } 
  35.       ], 
  36.       "UpstreamPathTemplate""/GetModel?id={s1}"
  37.       "UpstreamHttpMethod": [ "Get" ] 
  38.     } 
  39.   ] 

2个项目运行,测试

代码地址

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

 

来源:UP技术控内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯