TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
故如虹,知恩;故如月,知明
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
15篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
33篇
软件架构
23篇
.NET Core
119篇
.NET MVC
11篇
英语
3篇
随笔
86篇
Bootstrap
3篇
Redis
21篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
151篇
消息队列
6篇
docker
41篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
.net core3.1使用API网关Ocelot一:简单使用
6604
人阅读
2020/8/10 17:31
总访问:
3913499
评论:
2
收藏:
0
手机
分类:
微服务
**创建极简的两个项目**: 一个API网关项目(APIGateway),一个WebApi项目(ProductsAPIServices) 大概就是这个样子: ![](https://img.tnblog.net/arcimg/aojiancc2/389882967fc94809bfdd1c2aa498c219.png) **APIGateway项目**: 类型就选.net core的空项目即可 > 安装Ocelot依赖 ``` Install-Package Ocelot ``` > 创建一个Ocelot的配置文件configuration.json ``` { "Routes": [ { "DownstreamPathTemplate": "/api/customers", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 9001 } ], "UpstreamPathTemplate": "/customers", "UpstreamHttpMethod": [ "Get" ] }, { "DownstreamPathTemplate": "/api/customers/{id}", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 9001 } ], "DownstreamPort": 9001, "UpstreamPathTemplate": "/customers/{id}", "UpstreamHttpMethod": [ "Get" ] }, { "DownstreamPathTemplate": "/api/products", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 9002 } ], "UpstreamPathTemplate": "/api/products", "UpstreamHttpMethod": [ "Get" ] } ], "GlobalConfiguration": { "RequestIdKey": "OcRequestId", "AdministrationPath": "/administration" } } ``` tn> 注意:Ocelot 16.x之后配置要换成Routes而不是ReRoutes,否则会报错 > 在Program的CreateHostBuilder中添加配置文件的使用 ``` public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, config) => { //添加配置文件的使用 config .SetBasePath(hostingContext.HostingEnvironment.ContentRootPath) .AddJsonFile("configuration.json") .AddEnvironmentVariables(); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); webBuilder.UseUrls("http://*:9000"); }); } ``` 修改启动端口还可以在launchSettings.json中修改 ![](https://img.tnblog.net/arcimg/aojiancc2/fba644b21a0c4652a514f497b90856af.png) > Startup中添加Ocelot相关的引用 ``` public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddOcelot(); services.AddHttpContextAccessor(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseOcelot(); } } ``` ok到这一步Ocelot的相关引用已经搞定了 <br/> **WebApi项目**: 这个就很简单了,随便创建一个webapi的项目,然后添加一个叫Customers的API控制器 ![](https://img.tnblog.net/arcimg/aojiancc2/5af850b1aae3429c9755e23cc0d92b17.png) 顺手把启动的端口换成9001吧 ![](https://img.tnblog.net/arcimg/aojiancc2/a42634baaae14b61ae311ea146b4cceb.png) 切换到项目目录中使用dotnet run启动,然后保证可以正常访问这个api控制器即可 ![](https://img.tnblog.net/arcimg/aojiancc2/2867958eaac54216ab31845b84c1ff2c.png) <br> **所有工作准备完毕,可以尝试使用api官网到访问具体的api**: 可以看到我们访问api网关项目,成功访问到具体的api ![](https://img.tnblog.net/arcimg/aojiancc2/37c49817cc6e4f8cb3fc140237a0dc1d.png) 看运行日志可以看到请求的真实地址 ![](https://img.tnblog.net/arcimg/aojiancc2/5a281a0fff0b4af4917aa867696d5296.png) 代码地址: https://download.tnblog.net/resource/index/13c7281eb89141c9917780a11b0b0d8f
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}