1. 程式人生 > >Ocelot中文文件入門

Ocelot中文文件入門

入門

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。
Program.cs檔案 然後在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(); } }

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