入门

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();
    }
}

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