概述

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. 据lovecherry的一步一步学Remoting序列文章学习.net Remoting日记(2)
  2. 将h.264视频流封装成flv格式文件
  3. Oracle中的常用的数据类型
  4. 传统与敏捷开发的真正区别
  5. PHP面试题:合并两个数组有几种方式,试比较它们的异同
  6. 【渝粤题库】陕西师范大学201001 教育管理学(高起本)作业
  7. 【宋红康程序思想学习日记3】杨辉三角
  8. linux 7查内核,查看CentOS7内核版本及发行版本
  9. eclipse如何设置成保护眼的背景色
  10. iOS开发之YYKit丰富的组件,如:YYText
  11. 浏览器发送POST请求、DELETE请求
  12. sql左连接查询,去重复数据
  13. 匿名函数的this指向
  14. noip2018秃页记
  15. Python中用于身份证验证的库函数
  16. 程序员保健身体的几点秘诀
  17. android u盘加载_[转] android 通过usb读取 U盘
  18. 数据防泄露解决方案-智能制造
  19. 小程序跳转公众号关注页面的两种方法
  20. 项目临时变更时,项目经理应该如何应对?

热门文章

  1. python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转
  2. SpringBoot入门 (一) HelloWorld
  3. 空间数据索引RTree完全解析及Java实现
  4. MyBatis缓存通俗易懂
  5. uwp应用在debug模式下运行正常,编译为release版本的时候抛出异常
  6. python数据类型之间的转换
  7. 算法导论--广度优先搜索和深度优先搜索
  8. sql学习笔记---公用表达式(CTE)
  9. 【转】shell pipe与输入输出重定向的区别
  10. 如何做Teams Bot的测试覆盖