欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Ocelot(七)- 入门

程序员文章站 2022-03-20 12:55:21
Ocelot入门-安装与引用,使用nuget安装Ocelot及其依赖项。您需要创建一个netstandard2.0项目并将其打包到其中。然后按照下面的“启动”和“ 配置”部分启动并运行。 ......

入门

ocelot仅适用于.net core,目前是为netstandard2.0构建的。如果ocelot适合您,那么此文档可能会有用。

.net 

安装nuget包

使用nuget安装ocelot及其依赖项。您需要创建一个netstandard2.0项目并将其打包到其中。然后按照下面的“启动”和“ 配置部分启动并运行。

install-package ocelot

所有版本都可以在这里找到

配置

以下是一个非常基本的ocelot.json。它不会做任何事情,但应该让ocelot开始。

{
    "reroutes": [],
    "globalconfiguration": {
        "baseurl": "https://api.mybusiness.com"
    }
}

这里要注意的最重要的是baseurl。ocelot需要知道它正在运行的url,以便进行header查找和替换以及某些管理配置。设置此url时,它应该是客户端将看到运行ocelot的外部url,例如,如果您正在运行容器,则ocelot可能会在url上运行但在其前面有类似nginx的响应在响应在这种情况下,ocelot基本网址应为

如果您正在使用容器并要求ocelot在响应客户端, 那么您可以执行此操作,但是如果您要部署多个ocelot,您可能希望在某种类型的命令行上传递它脚本。希望您使用的任何调度程序都可以通过ip。

程序

然后在您的program.cs中,您将需要以下内容。需要注意的主要事项是addocelot()(添加ocelot服务),useocelot()。wait()(设置所有ocelot中间件)。

   public class program
   {
       public static void main(string[] args)
       {
            new webhostbuilder()
               .usekestrel()
               .usecontentroot(directory.getcurrentdirectory())
               .configureappconfiguration((hostingcontext, config) =>
               {
                   config
                       .setbasepath(hostingcontext.hostingenvironment.contentrootpath)
                       .addjsonfile("appsettings.json", true, true)
                       .addjsonfile($"appsettings.{hostingcontext.hostingenvironment.environmentname}.json", true, true)
                       .addjsonfile("ocelot.json")
                       .addenvironmentvariables();
               })
               .configureservices(s => {
                   s.addocelot();
               })
               .configurelogging((hostingcontext, logging) =>
               {
                   //add your logging
               })
               .useiisintegration()
               .configure(app =>
               {
                   app.useocelot().wait();
               })
               .build()
               .run();
       }
   }

**note:** when using asp.net core 2.2 and you want to use in-process hosting, replace **.useiisintegration()** with **.useiis()**, otherwise you'll get startup errors.

.net 

安装nuget包

使用nuget安装ocelot及其依赖项。您需要创建一个netcoreapp1.0 + projct并将包带入其中。然后按照下面的“启动”和“ 配置”部分启动并运行。请注意,您需要从nuget feed中选择一个ocelot包。

所有版本都可以在这里找到

配置

以下是一个非常基本的ocelot.json。它不会做任何事情,但应该让ocelot开始。

{
    "reroutes": [],
    "globalconfiguration": {}
}

程序

然后在您的program.cs中,您将需要以下内容。

public class program
{
    public static void main(string[] args)
    {
        iwebhostbuilder builder = new webhostbuilder();

        builder.configureservices(s => {
        });

        builder.usekestrel()
            .usecontentroot(directory.getcurrentdirectory())
            .usestartup<startup>();

        var host = builder.build();

        host.run();
    }
}

启动

使用json文件进行配置的示例启动如下所示。

public class startup
{
    public startup(ihostingenvironment env)
    {
        var builder = new configurationbuilder()
            .setbasepath(env.contentrootpath)
            .addjsonfile("appsettings.json", optional: true, reloadonchange: true)
            .addjsonfile($"appsettings.{env.environmentname}.json", optional: true)
            .addjsonfile("ocelot.json")
            .addenvironmentvariables();

        configuration = builder.build();
    }

    public iconfigurationroot configuration { get; }

    public void configureservices(iservicecollection services)
    {
        services.addocelot(configuration);
    }

    public void configure(iapplicationbuilder app)
    {
        app.useocelot().wait();
    }
}

这几乎是你入门需要的全部。