豹猫路由如何在ASP。净Core3.1项目中实现

  介绍

这期内容当中小编将会给大家带来有关豹猫路由如何在ASP。净Core3.1项目中实现,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强> 1。路由

豹猫的主要功能是接收客户端等传入的HTTP请求,并将其转发到下游服务.Ocelot当前仅以另一个HTTP请求的形式支持此功能(将来可能是任何传输机制)。
豹猫将一个请求路由到另一个请求。为了让豹猫正常工作,您需要在配置中设置一个路线。下面我们就豹猫基础项目构建简单介绍下路由功能。

<强> 2。豹猫基础项目构建(APIGatewayBasicDemo)

现在我们根据GitHub贡献者开源项目来学习豹猫,根据下载下来豹猫基础项目结构来看,我们能看到有一个网关项目(APIGateway),一个客户API项目(CustomersAPIServices),一个产品API项目(ProductsAPIServices)。如下图所示:

豹猫路由如何在ASP。净Core3.1项目中实现

<强> 2.1豹猫网关配置

APIGateway网关项目根目录下面有一个配置。json配置文件,内容如下:

{   ,//路线:处理上游请求的对象(客户端),每个数组{}就是配置:上游地址和对应下游地址   ,“Routes":,   ,{//以下游才能开头的,是要转发到下游服务器的地址(CustomersAPIServices),与nginx转发类似//下才能面所有下游开头的,组成一个转发网址,转发地址是http://localhost: 9001/api/客户   “才能DownstreamPathTemplate",:,“,/api/customers"   “DownstreamScheme"才能:,“http"//,才能“DownstreamHost":,“localhost"//,才能“DownstreamPort":, 9001年,//转才能发到下游服务器的主机和端口。   “DownstreamHostAndPorts"才能:,   {才能   ,才能“Host":,“localhost"   ,才能“Port": 9001   ,,}   ,,,//上游才能开头是指上游服务器(客户端)访问地址,通过http 得到方式访问。//才能也就是说客户端访问http://localhost: 9000/customers 实际是转发到了http://localhost: 9001/api/客户的服务   “才能UpstreamPathTemplate",:,“,/customers"   “UpstreamHttpMethod"才能:,(,“Get",)   },   ,{   “DownstreamPathTemplate"才能:,“/api/客户/{id}“,   “DownstreamScheme"才能:,“http"//,才能“DownstreamHost":,“localhost"//,才能“DownstreamPort":, 9001年,   “DownstreamHostAndPorts"才能:,   {才能   ,才能“Host":,“localhost"   ,才能“Port": 9001   ,,}   ,,,   “UpstreamPathTemplate"才能:,“/客户/{id}“,   “UpstreamHttpMethod"才能:,(,“Get",)   },   ,{   “才能DownstreamPathTemplate",:,“,/api/products"   “DownstreamScheme"才能:,“http"//,才能“DownstreamPort":, 9002年,//,才能“DownstreamHost":,“localhost"   “DownstreamHostAndPorts"才能:,   {才能   ,才能“Host":,“localhost"   ,才能“Port": 9002   ,,}   ,,,   “才能UpstreamPathTemplate",:,“,/products"   “UpstreamHttpMethod"才能:,(,“Get",)   ,}   ,),   ,//全局配置,允许覆盖路线特定设置   ,“GlobalConfiguration": {   ,“RequestIdKey":,“OcRequestId"   ,“AdministrationPath":“/administration"   ,}   }

下面我们就文件中这些属性进行解释:
DownstreamPathTemplate:下游路由服务地址。
DownstreamScheme:下游服务地址访问协议类型http或https者。
DownstreamHostAndPorts:是一个数据集合,用于定义您希望将请求转发到的任何下游服务的主机和端口。通常,它仅包含一个条目,但是有时您可能希望对下游服务进行负载均衡请求,豹猫允许您添加多个条目,然后选择一个负载均衡器。
UpstreamPathTemplate:上游服务地址,即下游服务真实访问地址。
UpstreamHttpMethod:上游服务http请求方式,例如,帖子。
GlobalConfiguration:顾名思义就是全局配置,此节点的配置允许覆盖路线里面的配置,你可以在这里进行通用的一些配置信息。
在豹猫中,您可以以{一}的形式将变量的占位符添加到模板中。占位符变量需要同时存在于DownstreamPathTemplate和UpstreamPathTemplate属性中。当设置为豹猫时,豹猫将尝试为每个请求豹猫进程将UpstreamPathTemplate占位符中的值替换为DownstreamPathTemplate。例如上述/客户/{id}。

<强> 2.2网关项目中添加豹猫支持

现在我们在网关项目中添加豹猫支持,代码如下:

public  static  IWebHostBuilder  CreateWebHostBuilder (string [], args),=比;   ,,WebHost.CreateDefaultBuilder (args)   ,,,//.UseStartup

豹猫路由如何在ASP。净Core3.1项目中实现