一日一技: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上进行展示的时候,我们通常需要在一个界面上展示很多 ...
最新文章
- 更改MySQL数据库目录位置
- easyui js解析字符串_easyui的解析器Parser
- python 数组中第k个最大元素
- python123江湖秘籍_江湖秘籍,python基本数据类型之列表、元组、字典
- 安装git安装路径在哪_Atom插件安装与git的安装配置
- 第2章 算法1---《大话数据结构》读书笔记
- sql游标 while_用SQL Server中的排名函数替换SQL While循环和游标,以提高查询性能
- Bailian2946 玩游戏【模拟】
- 【SimpleITK】使用区域生长法/种子填充法/形态学分割肺-CT img
- User-Item协同自回归模型的协同过滤
- tcp 三次握手和四次断连深入分析:连接状态和socket API的关系----BAT 李运华
- WPF 控件专题 TextBox控件详解
- 小球落体计算机模拟思路,使用CSS3动画模拟实现小球自由落体效果
- 微信时代的巨大冲击 QQ空间面临艰难转型
- C#三点法计算圆心坐标和圆半径
- mac android 模拟器耗电,Android模拟器崩溃在Mac
- 【Pytorch Lighting】第 5 章:时间序列模型
- 图解MySQL在Linux下的安装与配置
- 武林c语言,听风一剑
- 十五件事让身体越来越差