概述

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初探相关推荐

  1. ASP.NET Core Api网关Ocelot的中文文档

    架构图 入门 不支持 配置 路由 请求聚合 GraphQL 服务发现 微服务ServiceFabric 认证 授权 Websockets 管理 流量控制 缓存 QoS服务质量 转换Headers 转换 ...

  2. .NET Core API网关Ocelot(十四)【转换Claims,日志,跟踪】

    Ocelot允许用户访问claims并把它们转换到头部,请求字符串参数和其他claims中.这仅在用户通过身份验证后才可用. 用户通过身份验证之后,我们运行claims转换中间件.这个中间件允许在授权 ...

  3. [Hei-Ocelot-Gateway ].Net Core Api网关Ocelot的开箱即用版本

     写在前面 很多neter都有在用Ocelot做Api网关,但是Ocelot又不像kong或者其他网关一样,开箱即用.它需要你单独开一个web项目来部署,这样很多同学都在做重复的事了. 这里[Hei ...

  4. .NET Core开源API网关 – Ocelot中文文档

    Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...

  5. 基于ASP.NET Core api 的服务器事件发送

    现如今程序员对Web API的调用已经是轻车熟路.但是传统的api调用都是拉模式,也就是主动发起请求去调用一个api. 但是程序员往往对另一种很有用的模式很陌生,即推模式. 拉模式 - 主动调用并获取 ...

  6. 客户要求ASP.NET Core API返回特定格式,怎么办?

    当ASP.NET Core API提供给到外部系统使用时,在某些情况下,可能需要根据这些外部系统的要求来格式化数据. 比如,客户就要求API的返回值属性名必须是PascalCase(如UserName ...

  7. 自动给 Asp.Net Core Api 增加 ApiVersionNeutral

    自动给 Asp.Net Core Api 增加 ApiVersionNeutral Intro 新增加一个 Controller 的时候,经常忘记在 Controller 上增加 ApiVersion ...

  8. AutoWrapper:通过有意义的响应来美化您的ASP.NET Core API

    目录 介绍 默认的ASP.NET Core API响应 AutoWrapper.Core的救援 主要特点: TL,DR 给我看代码 定义自己的自定义消息 定义自己的Api异常 选项 版本1.0.0 1 ...

  9. API网关—Ocelot

    API网关-Ocelot API网关 Ocelot Ocelot的基本使用 API网关 我们知道在微服务架构中,后端会有许许多多的服务实例,但是在UI上进行展示的时候,我们通常需要在一个界面上展示很多 ...

最新文章

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

热门文章

  1. Pyhton学习——Day25
  2. |洛谷|动态规划|P1164 小A点菜
  3. iOS SQLite函数总结
  4. SharePoint 2010 master page 控件介绍(5):其他
  5. [原]NYOJ-开灯问题-77
  6. IE6下z-index犯癫不起作用bug的初步研究
  7. 不断电系统的容量如何计算?
  8. 开发Teams的messaging extension
  9. dock怎么自定义_如何自定义和调整Mac的Dock
  10. 你与一份好简历之间的距离