首页 > 其他分享 >ocelot系列文章02---在.netcore项目中集成

ocelot系列文章02---在.netcore项目中集成

时间:2024-04-28 09:33:06浏览次数:23  
标签:02 ocelot netcore app --- json https services localhost

1、创建项目并引入安装包

首先,创建2个WebApi项目,WebApi01和WebApi02,地址分别https://localhost:44313和https://localhost:44390,其中WebApi01当作网关,WebApi02当作具体的微服务Api。

然后,将Ocelot的NuGet软件包安装到WebApi01项目中。

注意我这里安装的是17.0.0版本,配置方面会有点不一样。

2、在Startup.ConfigureServices中增加services.AddOcelot

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new OpenApiInfo { Title = "Autofac.WebApi", Version = "v1" });
    });

    services.AddOcelot();
}

 

3、在Startup.Configure中增加app.UseOcelot().Wait();

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseSwagger();
        app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Ocelot.WebApi01 v1"));
    }

    app.UseHttpsRedirection();

    app.UseRouting();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });

    app.UseOcelot().Wait();
}

 4、ocelot.json文件(你也要吧用默认的json配置文件)

{
  "Routes": [ //路由配置(注16.1版本将ReRoutes换成Routes)
    {
      "DownstreamPathTemplate": "/{url}", // 下游(服务提供方)服务路由模板
      "DownstreamScheme": "https", // 下游Uri方案,http、https
      "DownstreamHostAndPorts": [ // 服务地址和端口,如果是集群就设置多个
        {
          "Host": "localhost",
          "Port": 44390
        }
      ],
      "UpstreamPathTemplate": "/api/{url}", // 上游(客户端,服务消费方)请求路由模板
      "UpstreamHttpMethod": [ "GET" ] // 允许的上游HTTP请求方法,可以写多个
    }
  ],
  "GlobalConfiguration": { //全局配置
    "BaseUrl": "https://localhost:44313" //网关对外地址
  }
}

5、Program.CreateHostBuilder中增加AddJsonFile("ocelot.json", optional: false, reloadOnChange: true);

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostingContext, builder) => {
            builder.AddJsonFile("ocelot.json", optional: false, reloadOnChange: true);
        })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

6、测试

让我们来测试看看,https://localhost:44313/api/WeatherForecast会不会跳转https://localhost:44390/WeatherForecast。

标签:02,ocelot,netcore,app,---,json,https,services,localhost
From: https://www.cnblogs.com/zhengwei-cq/p/18163012

相关文章

  • [pwn]XYCTF 2024 个人WriteUp
    目录XYCTF2024WriteUp>pwn1.hello_world(签到)2.invisible_flag3.static_link由于本人菜鸡和时间问题,只打了前两周,打出了pwn的三道简单题目,记录自己的做题过程,如何后续复现可能也会更新。XYCTF2024WriteUp>pwn1.hello_world(签到)常规checksecIDA反编译进入主函数发......
  • 清华出品的AI学术助手--清AI
    作为一款PC端的AI工具,这款软件的安装非常简单,有一个在线安装程序,大小只有2kb,但是运行该.application扩展名程序后会在线下载256MB的软件包,下载完即可直接使用。软件支持Windows10及以上操作系统,并且支持自动升级。安装完成后需要用手机号注册并登录才能使用,登录后会自动弹出Toke......
  • 力扣-566. 重塑矩阵
    1.题目题目地址(566.重塑矩阵-力扣(LeetCode))https://leetcode.cn/problems/reshape-the-matrix/题目描述在MATLAB中,有一个非常有用的函数reshape,它可以将一个 mxn矩阵重塑为另一个大小不同(rxc)的新矩阵,但保留其原始数据。给你一个由二维数组mat表示的 mxn......
  • Ocelot系列文章01---简介
    一、项目简介Ocelot是一个用.NETCore实现并开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与ServiceFabric、Consul集成。1、请求转发地址配置通过在json文件简单配置,就可以实现简易的网关,它可以接受所有客户端的请求,并......
  • scPagwas-gwas data pruning的处理-inhouse 【未完成整理】
    总共三个大步骤:step1:提取503例EUR-Sample的1000G.EUR.QC.chr,通过python脚本批量跑plink得到step2:提取my-MDD中SNP的1000G.EUR.QC.chr-sub-chr,通过python脚本批量跑plink得到step3:进行pruning,得到MDD.chr*_plink_prune_EUR_filtered_LD0.8.prune.in,通过python脚本批量跑pli......
  • 攻防世界-难度1- bad_python
    the.pycisbroken,canyouhelpmerecover?攻防世界难度1-bad_pythonpython头部观察文件名pyre.cpython-36.pyc,说明是在python3.6环境下编译的,那么需要恢复正常pyc3.6对应的首部16字节。uncompyle6pip3installuncompyle6uncompyle6--versionuncompyle6pyre.cpython......
  • linux1-快照
    快照快照可以保存虚拟机的状态,虚拟机出现问题时,可以通过预先制作的快照恢复到制作时的状态,用作备份用右键虚拟机-快照-快照管理器拍摄快照设置名称加载快照PS:在虚拟机处于关机状态时,快照的拍摄速度较快,虚拟机启动时拍摄的速度会变为几分钟......
  • linux2-ls
    lsls,listdirectorycontents,在命令行中,以平铺的形式,展示当前工作目录(默认为/home/用户名目录)下的内容(文件和文件夹)ls#默认为ls/home/用户名lsls-h-h,human-readable,表示以易于阅读的形式,列出文件的大小(如K,M,G)不能单独使用,要和-l混合使用......
  • MySQL-索引优化实战
     针对联合索引来说,如果第一列就是用范围查询,例如大于小于这些,就会认为查询的行很多,如果不是覆盖索引,那么就不再使用这个二级索引,认为使用二级索引还要频繁的去回表查询等等,消耗更大,所以就会去全表扫描。但是可以使用forceindex(索引名称)去强制使用指定的索引,但是一般不建议这......
  • SpringMVC(1)-@RequestMapping的简单使用
    本文核心内容来自于韩顺平老师的课程@RequestMapping注解可以用来指定控制器或者处理器的某个方法的请求url@ControllerpublicclassUserServlet{@RequestMapping("/login")publicStringlogin(){return"login";}}1@RequestMappi......