ASP.NET Core下Ocelot的简单使用

2021-04-22 04:28

阅读:478

标签:mes   sch   wait   包管理   creat   find   figure   service   def   

一、创建demo项目

1.新建webapi项目,命名为“DemoProject”,去掉HTTPS勾选

 1 using Microsoft.AspNetCore.Mvc;
 2 using System.Collections.Generic;
 3 
 4 namespace DemoProject.Controllers
 5 {
 6     [Route("api/[controller]/[action]")]
 7     [ApiController]
 8     public class DefaultController : ControllerBase
 9     {
10         static List list = new List() {
11              new Student(){ ID = "001", StudentName = "学生1", StudentAge = 16 },
12              new Student(){ ID = "002", StudentName = "学生2", StudentAge = 18 },
13              new Student(){ ID = "003", StudentName = "学生3", StudentAge = 17 }
14          };
15 
16         [HttpGet]
17         public List GetList()
18         {
19             return list;
20         }
21 
22         [HttpGet]
23         public Student GetModel(string id)
24         {
25             return list.Find(t => t.ID == id);
26         }
27     }
28 
29     public class Student
30     {
31         public string ID { get; set; }
32         public string StudentName { get; set; }
33         public int StudentAge { get; set; }
34     }
35 }

 

2.通过VS启动,并且保证能正常访问

技术图片 技术图片

 

 

二、创建Ocelot项目

1.新建webapi项目,命名为“OcelotProject”,去掉HTTPS勾选,不需要Controller

 

2.打开程序包管理器控制台,执行命令:Install-Package Ocelot

技术图片

 

3.在项目根目录下,新建配置文件“ocelot.json”,填写为你自己的“DemoProject”的端口号

{
  "ReRoutes": [
    {
      "DownstreamPathTemplate": "/api/Default/GetList",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 5963
        }
      ],
      "UpstreamPathTemplate": "/GetList",
      "UpstreamHttpMethod": [ "Get" ]
    },
    {
      "DownstreamPathTemplate": "/api/Default/GetModel?id={s1}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 5963
        }
      ],
      "UpstreamPathTemplate": "/GetModel?id={s1}",
      "UpstreamHttpMethod": [ "Get" ]
    }
  ]
}

 

4.在Program.cs的CreateHostBuilder中加入

.ConfigureAppConfiguration(conf => {
    conf.AddJsonFile("ocelot.json", false, true);
})

技术图片

 

5.在Startup.cs的ConfigureServices中加入:services.AddOcelot(Configuration);

  在Startup.cs的Configure中加入:app.UseOcelot().Wait();

技术图片

 

 

 

三、请求

通过VS启动“OcelotProject”,得知该项目我的端口号为6213,

再加上配置中对外的路由为“/GetList”,所以访问是:http://localhost:6213/GetList

技术图片

 

所以GetModel的访问地址是:http://localhost:6213/GetModel?id=002

技术图片

 

代码:https://files.cnblogs.com/files/shousiji/OcelotDemo.rar

ASP.NET Core下Ocelot的简单使用

标签:mes   sch   wait   包管理   creat   find   figure   service   def   

原文地址:https://www.cnblogs.com/shousiji/p/12246094.html

上一篇:通过webhook构建Jenkins项目

下一篇:Lucene


评论


亲,登录后才可以留言!