一日一技:ASP.NET Core Api网关Ocelot初探

概述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盘点那些让程序员目瞪口呆的Bug都有什么?

程序员一生与bug奋战&#xff0c;可谓是杀敌无数&#xff0c;见怪不怪了&#xff01;在某知识社交平台中&#xff0c;一个“有哪些让程序员目瞪口呆的bug”的话题引来了6700多万的阅读&#xff0c;可见程序员们对这个话题的敏感度有多高。1、麻省理工“只能发500英里的邮件”该…

mysql heartbeat 慢_MySQL 主从延迟监控脚本(pt-heartbeat)

对于MySQL数据库主从复制延迟的监控&#xff0c;我们可以借助percona的有力武器pt-heartbeat来实现。pt-heartbeat通过使用时间戳方式在主库上更新特定表&#xff0c;然后在从库上读取被更新的时间戳然后与本地系统时间对比来得出其延迟。本文主要是通过脚本来定期检查从库与主…

asp.net中的窗体身份验证(分目录验证篇)

在上一篇博文《asp.net中的窗体身份验证&#xff08;最简单篇&#xff09;》中的身份验证虽然很简单&#xff0c;但是有一个缺点&#xff0c;就是访问整个网站都必须要经过身份验证&#xff0c;而事实上&#xff0c;很多网站都不会这么要求的。 比如一个新闻系统&#xff0c;通…

这本 “写不完” 的黑科技笔记本,恐怕要颠覆整个行业!

这是一本可以“阅后即焚”的笔记本&#xff1f;别想太多这个“焚”不是那个“焚”哦~TA非常神奇&#xff01;风筒吹吹&#xff0c;笔记本上字迹都会自动消失。what&#xff1f;&#xff08;暂时保密&#xff0c;一会见证奇迹&#xff09;每个人在步入学生时代&#xff0c;到社会…

.NET 6 Preview 2 发布

前言在 2021 年 3 月 11 日&#xff0c; .NET 6 Preview 2 发布&#xff0c;这次的改进主要涉及到 MAUI、新的基础库和运行时、JIT 改进。.NET 6 正式版将会在 2021 年 11 月发布&#xff0c;支持 Windows、macOS、Linux、Android 和 iOS 等系统以及 x86、x86_64、ARM 和 ARM64…

mysql+误操作怎么恢复_MySQL 误操作后如何快速恢复数据

传统解法用全量备份重搭实例&#xff0c;再利用增量binlog备份&#xff0c;恢复到误操作之前的状态。然后跳过误操作的SQL&#xff0c;再继续应用binlog。此法费时费力&#xff0c;不值得再推荐。利用binlog2sql快速闪回首先&#xff0c;确认你的MySQL server开启了binlog&…

RHEL5.1下安装GCC

RHEL5.1下安装GCC 2010年08月17日 星期2 14&#xff1a;00 一、环境说明 由于用的是默认安装&#xff0c;所以说GCC也没有装进去。 GCC在安装源码包时要用到的一个组件&#xff0c; 开始安装&#xff1a;按顺序安装以下包就可以完成GCC的安装了 [roottest tools]# uname -a L…

你见过的“垃圾”项目是这样子么?

大家好&#xff0c;我是Z哥。我相信每一位程序员最怕遇到代码质量堪忧的项目&#xff0c;毕竟增加一个同样的功能&#xff0c;在一个代码整洁、清晰的项目里与在一个代码混乱不堪的项目里&#xff0c;效率和质量上的差距达到一个数量级一点也不奇怪。但是残酷的现实是&#xff…

[转]ArcGIS.Server.9.3和ArcGIS API for Flex实现Toolbar功能(四)

目的&#xff1a;1.ArcGIS API for Flex实现Toolbar功能&#xff0c;包括ZoomIn、ZoomOut、Pan、PrevExtent、NextExtent、FullExtent功能。准备工作&#xff1a;1.这次地图数据就用Esri提供的http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/Ma…

mysql使用索引下推的好处_mysql的索引下推理解和实践

对于mysql建表稍有点经验的开发人员都会为后续的where查询条件提前考虑创建索引。这里说的是在使用索引查询时有关索引下推的有关知识点。综合前人的经验结果&#xff1a;索引下推是数据库检索数据过程中为减少回表次数而做的优化。判断是否需要回表的是由mysql存储引擎控制&am…

物理学家史蒂夫·霍金逝世,享年76岁(附图文回顾他的一生)

3月14日消息&#xff0c;据英国天空新闻等多家媒体报道&#xff0c;史蒂芬威廉霍金&#xff08;Stephen William Hawking&#xff09;去世&#xff0c;享年76岁&#xff08;1942年1月8日&#xff0d;2018年3月14日&#xff09;。这一消息已经得到霍金家人确认。霍金的三个孩子露…

mysql数据库熟悉表空间数据文件_Oracle表空间和数据文件

Oracle创建表空间 1.创建普通表空间create tablespace oracle_tablespacedatafileOracle创建表空间1.创建普通表空间create tablespace oracle_tablespacedatafile /home/oracle/oradata/orcl/oracle_tablespace.dbfsize 100mautoextend on next 10M maxsize 200Mextent manage…

CSRobot gen:mysql,pg-c#类型映射

下面的数据库类型和c#类型的映射关系&#xff0c;只是我个人的想法&#xff0c;应该不同的业务场景对应可能不一样&#xff0c;比如json&#xff0c;xml&#xff0c;line&#xff0c;polygon结构化的数据&#xff0c;如果在C#中有对应的实体类&#xff0c;可以很友好的转换&…

HTTP header中的 Cache-control

网页的缓存是由HTTP消息头中的“Cache-control”来控制的&#xff0c;常见的取值有private、no-cache、max-age、must-revalidate等&#xff0c;默认为private。其作用根据不同的重新浏览方式分为以下几种情况&#xff1a;&#xff08;1&#xff09; 打开新窗口如果指定cache-c…

2018年最值得关注的15大技术趋势,区块链将得到更广泛的应用

通常情况下&#xff0c;技术趋势是很难准确预测的&#xff0c;因为预测未来本身就极其困难。但是我们还是可以从过往的一些显著数据指标来推测新的一年里科技行业的发展趋势。2018&#xff0c;有哪些值得关注的技术趋势&#xff1f;01 区块链将得到更广泛的应用

mtu值修改

ping -f -l 1472 192.168.0.1转载于:https://blog.51cto.com/xiaohe027/382282

Visual Studio项目引用出现感叹号怎么办?

原因可能有多种&#xff1a;第一种问题&#xff1a;解决方式1&#xff1a;今天换了台电脑&#xff0c;就把笔记本上的项目拷贝到了台式机上&#xff0c; 但是我没有拷贝解决方案整个文件夹&#xff0c;因为其中项目太多了&#xff0c;我就把其中一个项目的文件夹直接拷贝到电脑…

java打包拆包_[Java] Java 打包成jar包 和 解压jar包

解压jar包jar xf xxx.jar打包成jar包方法一&#xff1a;通过jar命令jar命令的用法&#xff1a;下面是jar命令的帮助说明&#xff1a;用法&#xff1a;jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项包括&#xff1a;-c 创建新的归档文…

离职总结:大公司与小公司的个人体验

离职在即&#xff0c;在准备下一个工作环境的这段时间&#xff0c;忽然有一阵感慨&#xff0c;工作近五年&#xff0c;在这段时间中&#xff0c;体验了两种不同的工作环境&#xff1a;一个规模很大&#xff0c;各种开发体系完备的大公司&#xff0c;另一个&#xff08;也是目前…

NDK/JNI01--NDK下载配置

1、NDK下载我的开发环境是Ubuntu9.04 , 所以下载的NDK为android-ndk-r4-linux-x86.zip 2、NDK解压及配置2-1、解压zip文件unzip android-ndk-r4-linux-x86.zip 2-2、配置NDKROOTvim /etc/profile适当位置添加&#xff1a;export NDKROOT/usr/local/android-sdk-linux_86/androi…