这期内容当中小编将会给大家带来有关豹猫路由如何在ASP。净Core3.1项目中实现,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强> 1。路由强>
豹猫的主要功能是接收客户端等传入的HTTP请求,并将其转发到下游服务.Ocelot当前仅以另一个HTTP请求的形式支持此功能(将来可能是任何传输机制)。
豹猫将一个请求路由到另一个请求。为了让豹猫正常工作,您需要在配置中设置一个路线。下面我们就豹猫基础项目构建简单介绍下路由功能。
<强> 2。豹猫基础项目构建(APIGatewayBasicDemo) 强>
现在我们根据GitHub贡献者开源项目来学习豹猫,根据下载下来豹猫基础项目结构来看,我们能看到有一个网关项目(APIGateway),一个客户API项目(CustomersAPIServices),一个产品API项目(ProductsAPIServices)。如下图所示:
<强> 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项目中实现