Ocelot中文文件入門
阿新 • • 發佈:2018-12-18
入門
Ocelot僅適用於.NET Core,目前是根據netstandard2.0構建的,如果Ocelot適合您,這個文件可能會有用。
.NET Core 2.1
安裝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可能會在網址http://123.12.1.1:6543上執行,但在https://api.mybusiness.com上響應它之前有類似nginx的東西。 在這種情況下,Ocelot基本網址應為https://api.mybusiness.com。
如果由於某種原因你正在使用容器並且希望Ocelot在http://123.12.1.1:6543上響應客戶端,那麼你可以這樣做但是如果要部署多個Ocelot,你可能希望在命令列中傳遞它 某種指令碼。 希望您使用的任何排程程式都可以傳遞IP。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(); } }
.NET Core 1.0
安裝NuGet包
使用nuget安裝Ocelot及其依賴。 您需要建立一個netcoreapp1.0 + projct並將包帶入其中。 然後按照下面的“啟動”和“配置”部分啟動並執行。 請注意,您需要從NuGet Feed中選擇一個Ocelot包。
所有版本都可以在這裡找到。 配置 以下是一個非常基本的ocelot.json。 它不會做任何事情,但應該讓Ocelot開始。{ { "ReRoutes": [], "GlobalConfiguration": {} }Program.cs檔案 然後在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(); } } Startup.cs檔案 使用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(); } }