一日一技: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
一日一技:ASP.NET Core Api网关Ocelot初探相关推荐
- ASP.NET Core Api网关Ocelot的中文文档
架构图 入门 不支持 配置 路由 请求聚合 GraphQL 服务发现 微服务ServiceFabric 认证 授权 Websockets 管理 流量控制 缓存 QoS服务质量 转换Headers 转换 ...
- .NET Core API网关Ocelot(十四)【转换Claims,日志,跟踪】
Ocelot允许用户访问claims并把它们转换到头部,请求字符串参数和其他claims中.这仅在用户通过身份验证后才可用. 用户通过身份验证之后,我们运行claims转换中间件.这个中间件允许在授权 ...
- [Hei-Ocelot-Gateway ].Net Core Api网关Ocelot的开箱即用版本
写在前面 很多neter都有在用Ocelot做Api网关,但是Ocelot又不像kong或者其他网关一样,开箱即用.它需要你单独开一个web项目来部署,这样很多同学都在做重复的事了. 这里[Hei ...
- .NET Core开源API网关 – Ocelot中文文档
Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...
- 基于ASP.NET Core api 的服务器事件发送
现如今程序员对Web API的调用已经是轻车熟路.但是传统的api调用都是拉模式,也就是主动发起请求去调用一个api. 但是程序员往往对另一种很有用的模式很陌生,即推模式. 拉模式 - 主动调用并获取 ...
- 客户要求ASP.NET Core API返回特定格式,怎么办?
当ASP.NET Core API提供给到外部系统使用时,在某些情况下,可能需要根据这些外部系统的要求来格式化数据. 比如,客户就要求API的返回值属性名必须是PascalCase(如UserName ...
- 自动给 Asp.Net Core Api 增加 ApiVersionNeutral
自动给 Asp.Net Core Api 增加 ApiVersionNeutral Intro 新增加一个 Controller 的时候,经常忘记在 Controller 上增加 ApiVersion ...
- AutoWrapper:通过有意义的响应来美化您的ASP.NET Core API
目录 介绍 默认的ASP.NET Core API响应 AutoWrapper.Core的救援 主要特点: TL,DR 给我看代码 定义自己的自定义消息 定义自己的Api异常 选项 版本1.0.0 1 ...
- API网关—Ocelot
API网关-Ocelot API网关 Ocelot Ocelot的基本使用 API网关 我们知道在微服务架构中,后端会有许许多多的服务实例,但是在UI上进行展示的时候,我们通常需要在一个界面上展示很多 ...
最新文章
- 据lovecherry的一步一步学Remoting序列文章学习.net Remoting日记(2)
- 将h.264视频流封装成flv格式文件
- Oracle中的常用的数据类型
- 传统与敏捷开发的真正区别
- PHP面试题:合并两个数组有几种方式,试比较它们的异同
- 【渝粤题库】陕西师范大学201001 教育管理学(高起本)作业
- 【宋红康程序思想学习日记3】杨辉三角
- linux 7查内核,查看CentOS7内核版本及发行版本
- eclipse如何设置成保护眼的背景色
- iOS开发之YYKit丰富的组件,如:YYText
- 浏览器发送POST请求、DELETE请求
- sql左连接查询,去重复数据
- 匿名函数的this指向
- noip2018秃页记
- Python中用于身份证验证的库函数
- 程序员保健身体的几点秘诀
- android u盘加载_[转] android 通过usb读取 U盘
- 数据防泄露解决方案-智能制造
- 小程序跳转公众号关注页面的两种方法
- 项目临时变更时,项目经理应该如何应对?
热门文章
- python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转
- SpringBoot入门 (一) HelloWorld
- 空间数据索引RTree完全解析及Java实现
- MyBatis缓存通俗易懂
- uwp应用在debug模式下运行正常,编译为release版本的时候抛出异常
- python数据类型之间的转换
- 算法导论--广度优先搜索和深度优先搜索
- sql学习笔记---公用表达式(CTE)
- 【转】shell pipe与输入输出重定向的区别
- 如何做Teams Bot的测试覆盖