zoukankan      html  css  js  c++  java
  • Ocelot(v7.0.6)使用小记

    本次小记系列计划有如下内容

    1、Ocelot(v7.0.6)使用小记

    2、Swashbuckle.AspNetCore(v2.5.0)使用小记

    3、Ocelot与Swashbuckle.AspNetCore集成使用小记

    4、Consul使用小记

    5、Nginx使用小记

    6、IdentityServer4(2.2.0)使用小记

    7、Dotnetcore.CAP使用小记

    以上内容都是以《Ocelot(v7.0.6)使用小记》为基础的示例整合

    ========================================

    本文不涉及任何概念,如果想了解Ocelot是什么,请自己在园子中搜索即可。

    系统:Windows 10

    IDE:vs2017最新版(截止到2018年7月)

    SDK:.Net Core 2.1

    涉及到的Nuget项目有:Ocelot(v7.0.6)

    我们准备搭建2个WebAPI的空白项目

    ①DogService----用于被Ocelot访问

    ②CatService-----用于被Ocelot访问

    我们现在开始建立第一个WebAPI的项目,如果下图所示

    这里大家请注意,我现在使用的是asp.net core2.1版本的SDK,如果还是2.0版本的同学,强烈建议去下载2.1版本SDK

    这里我们已经建立完了一个空的DogService的WebAPI项目了

    我的VS可能是安装有问题,每次新建立的项目都会出现惊叹号,解决的方式是,关掉项目重新打开就好了,很奇怪。

    现在我们建立第二个WebAPI的项目CatService,过程以及截图略过,跟DogService完全一样的流程

    我们来修改一下默认生成的Controller控制器

     我把原来values控制器里的默认方法都删除了,自己增加了一个Test方法,访问模式为POST,自定义的路由是api/findcat

    我们来测试一下这个WebAPI能否正常访问,由于我使用的是POST的方式,所以我们来使用POSTMAN来进行访问测试

    先通过命令行的方式运行这个CatService

    显示的访问地址是 http://localhost:5000

    接下来我们通过postman来访问一下这个地址,看看是否有正确的结果

    结果是返回错误,没有得到任何信息,我们现在去startup代码片段里看一下

    我们尝试着把使用https的这个设置去掉,继续在测试一下看是否好用

    我们看到成功输出了 this  is a  cat 了,说明运行成功,然后我们通过同样的方式去测试一下DogService的WebAPI项目

    我们看到DogService也成功运行了,好了,CatService与DotService已经准备完毕,接下来我们开始建立一个Gateway的项目(Ocelot)

    我们右键点击GatewayAPI项目,选择管理Nuget程序包

    我们查找Ocelot并且进行安装,安装量猛增啊,上周还是40K,本周就52K了,哈哈

     

    如果中途出现了选择对话框,请选“我接受”即可。

    如果出现以下提示,说明Ocelot安装成功了,我们进行下一步操作。

     

    在GatewayAPI项目的startup文件的ConfigureServices方法中加入:services.AddOcelot(Configuration);

    在GatewayAPI项目的startup文件的Configure方法中加入:app.UseOcelot().Wait();

    我们在根目录新建一个名字叫做configuration.json的文件

     

    下面是config文件的内容

    {
      "ReRoutes": [
        //CatService
        {
          "DownstreamPathTemplate": "/api/findcat", //下游服务的访问路径
          "DownstreamScheme": "http", //下游服务是http还是https
          "DownstreamHostAndPorts": [ //下游服务的地址以及端口号
            {
              "Host": "localhost", //下游服务的地址
              "Port": "6002" //下游服务的端口号
            }
          ],
          "UpstreamPathTemplate": "/service/cat", //上游服务的访问路径
          "UpstreamHttpMethod": [ "GET", "POST" ] //上游服务的访问模式,本例里只用到了POST
        },
        //DogService
        {
          "DownstreamPathTemplate": "/api/finddog",
          "DownstreamScheme": "http",
          "DownstreamHostAndPorts": [
            {
              "Host": "localhost",
              "Port": "6002"
            }
          ],
          "UpstreamPathTemplate": "/service/dog",
          "UpstreamHttpMethod": [ "GET", "POST" ]
        }
      ]
    }
    /*
      上游与下游的解释:
      上游:用户访问Ocelot网关时的操作称为上游访问
      下游:Ocelot访问的具体WebAPI服务(本例中只用了WebAPI,当然还可能是其他类型服务)称为下游访问
    */

    现在我们的配置都已经完成了,在开始测试之前,我们需要修改一下CatService、DogService、GatewayAPI三个项目启动时绑定的地址+端口

    下面们把之前增加的那个config.json文件通过代码加载到程序中

    之后在config文件上点鼠标右键,右侧在复制到输出目录选项里选择如果较新则复制,然后确定保存即可

     

    接下来我们通过dotnet命令的方式运行一下这3个程序,看一下效果

    在使用dotnet命令运行之前,记得一定要把项目重新生成一下

     首先启动的是DogService,看红线处的地址就是我们之前给定的地址

     

    第二个启动的是CatService

    第三个我们来启动GatewayAPI

    GatewayAPI就是我们基于Ocelot的那个网关,我们使用http://localhost:6003/service/cat与http://localhost:6003/service/dog来尝试着访问一下,看是个什么效果

     由于我们给定的是POST访问模式,所以使用POSTMAN来进行测试

    我们看访问http://localhost:6003/service/dog 输出的结果为this is a dog

     我们看访问http://localhost:6003/service/cat 输出的结果为this is a cat

     本文是一个入门的初级小记,希望给没用过的Ocelot的同学们一个小小的帮助,也是对自己的一个使用回顾,祝各位同学身体健康,工作顺利

    PS:认为0点睡觉是养生的大咔们滚远点

  • 相关阅读:
    使用开源GIS克隆一个Google Map
    《3s新闻周刊》No.4:与国产GIS企业一起成长
    Google发布免费的SketchUp
    VB和VBA工程的一些限制
    推荐一个新的RSS阅读站点:抓虾
    USGS如何利用Google Earth
    ESRI今年的Dev Summit的幻灯片
    Google Map创建工具和资源
    《3s新闻周刊》第6期发布,本期话题:海外聚焦――空间信息技术进行式
    《Excel与VBA程序设计》最新进度(>75%)
  • 原文地址:https://www.cnblogs.com/paperlee/p/9267794.html
Copyright © 2011-2022 走看看