入门
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(); } }
这几乎是你入门需要的全部。