ASP.NET Core下Ocelot的简单使用

一、创建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<Student> list = new List<Student>() {
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<Student> 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

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

时间: 2024-11-13 10:22:13

ASP.NET Core下Ocelot的简单使用的相关文章

asp.net core网关Ocelot的简单介绍&amp; Ocelot集成Identity认证

原文地址:https://www.cnblogs.com/liumengchen-boke/p/11223377.html

Asp.Net Core下的两种路由配置方式

与Asp.Net Mvc创建区域的时候会自动为你创建区域路由方式不同的是,Asp.Net Core下需要自己手动做一些配置,但更灵活了. 我们先创建一个区域,如下图 然后我们启动访问/Manage/Home/Index 发现是404没有找到该页面,因为我们还没有为其配置路由,下面使用两种配置区域路由的方式 1.通过配置MapRoute app.UseMvc(routes => { routes.MapRoute( name: "default", template: "

Asp.Net Core下使用swagger生成api文档

目录 一.前期准备 二.配置Swagger 三.参考 .Net Core中有两个集成NSwag的包,分别为Swashbuckle和NSwag.两者的配置大同小异.这里以NSwag为例. 一.前期准备 1.初始化asp.net core 测试项目 新建asp.net core项目,此处略过: 新建apicontroller,并编写测试代码: [Route("api/[controller]")] [ApiController] public class UserApiController

Asp.net core与golang web简单对比测试

最近因为工作需要接触了go语言,又恰好asp.net core发布RC2,就想简单做个对比测试. 下面是测试环境: CPU:E3-1230 v2 内存:16G 电脑有点不给力 操作系统:Centos7.0(虚拟机) asp.net core rc2 golang v1.7beta1 下面是各自的代码: go package main import ( "fmt" "net/http" ) func main() { fmt.Println("This is

在ASP.NET Core MVC中构建简单 Web Api

Getting Started 在 ASP.NET Core MVC 框架中,ASP.NET 团队为我们提供了一整套的用于构建一个 Web 中的各种部分所需的套件,那么有些时候我们只需要做一个简单的 Web Api 程序怎么办呢? 在 GitHub 中的 ASP.NET Core MVC 源码里面,我们只要关注 Microsoft.AspNetCore.Mvc 这个包,那么除了这个包之外它还包含这些: Microsoft.AspNetCore.Mvc.ApiExplorer Microsoft.

asp.net core下的使用Application Insights

在Visudio Studio中,新建asp.net core可以内置Application Insights.Application Insights可以帮助我们分应web应用的性能,以至于我们来优化我们的应用,本文是step by step篇. 代码端 新建 asp.net core项目(asp.net core 1.1版本) 第三步配置设置,可以选择自己azure上的资源组. (注:目前asp.net core新建项目是1.0版本,可以在nuget中升级成1.1版本) 设置Starup.c

ASP.NET CORE下用盛派微信SDK取微信openid

用CORE做项目用到微信的相关东西,听说那个盛派微信SDK很火,自己弄了下,只是简单的用用,用户访问页面取微信openid 原文地址:https://www.cnblogs.com/niunan/p/9296959.html

ASP.Net Core下的HTTP请求处理过程

ASP.Net Core是一个自宿主的程序,里面含有Program类.BuildWebHost方式是程序最先开始执行的方法.类似于Main函数体 public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); IWebHost是通过IWebHostBuilder构建的.之后使用UseStartup来进入程序启动

使用VS Code开发asp.net core (下)

第一部分: https://www.cnblogs.com/cgzl/p/8450179.html 本文是基于Windows10的. Debugging javascript 打开wwwroot/js/site.js, 写一段简单的js代码: (function ($) { $(document).ready(function () { $('#myButton').on('click', function() { alert('Hello world!'); }); }); })(jQuery