1. 程式人生 > >Ocelot簡易教程(二)之快速開始1

Ocelot簡易教程(二)之快速開始1

原文: Ocelot簡易教程(二)之快速開始1

Ocelot簡易教程目錄

  1. Ocelot簡易教程(一)之Ocelot是什麼
  2. Ocelot簡易教程(二)之快速開始1
  3. Ocelot簡易教程(二)之快速開始2
  4. Ocelot簡易教程(三)之主要特性及路由詳解
  5. Ocelot簡易教程(四)之請求聚合以及服務發現
  6. Ocelot簡易教程(五)之整合IdentityServer認證以及授權
  7. Ocelot簡易教程(六)之重寫配置檔案儲存方式並優化響應資料
  8. Ocelot簡易教程(七)之配置檔案資料庫儲存外掛原始碼解析
    Ocelot是為.net core量身定做的,目前是基於 netstandard2.0進行構建的。

    .NET Core 2.1中如何使用呢?

    安裝NuGet package

    使用nuget安裝Ocelot及其依賴項。您需要建立一個netstandard2.0專案並將其Package安裝到專案中。然後按照下面的“啟動”和“ 配置”節點啟動並執行。
    安裝命令 Install-Package Ocelot
    你可以通過下面的連結檢視Ocelot的歷史版本https://www.nuget.org/packages/Ocelot/ 目前最新版是10.0.4。最新版最近正在進行重構,更新比較頻繁。

    配置

    以下配置是一個非常基礎的Ocelot.json配置,他不會做任何事情,但卻可以讓ocelot正常執行。

{
    "ReRoutes": [],
    "GlobalConfiguration": {
        "BaseUrl": "https://api.yilezhu.cn"
    }
}

這個配置裡面最重要的是BaseUrl。Ocelot需要知道它正在執行的URL,以便執行Header查詢和替換以及某些管理配置。設定此URL時,它應該是客戶端將看到Ocelot執行的外部URL,例如,如果您正在執行容器,則Ocelot可能會在URL上執行http://123.12.1.1:6543但在其前面有類似nginx的響應在https://api.yilezhu.cn。在這種情況下,Ocelot基本網址應為

https://api.yilezhu.cn

如果由於某種原因你正在使用容器並且希望Ocelot在http://123.12.1.1:6543上響應客戶端的請求, 那麼你可以這樣做但是如果要部署多個Ocelot,你可能希望在命令列中傳遞它某種指令碼。希望您使用的任何排程程式都可以傳遞IP。

特別需要注意的是,這裡的Ocelot.json配置檔案需要在VS中右鍵修改為“始終複製”屬性。

Program配置方法

官方文件是按照下面進行配置的。不過個人還是習慣在Sartup.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();
    }

Startup配置方法

我個人也比較習慣在Startup.cs中進行配置,不習慣在Program.cs中配置。下面是我配置的一種方式,當然你也可以自由發揮。

public void ConfigureServices(IServiceCollection services)
        {
             services.AddMvc();

            services.AddOcelot(new ConfigurationBuilder()
                    .AddJsonFile("ocelot.json")
                    .Build());
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public async void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        await app.UseOcelot();

        app.UseMvc();
}

總結

今天只是給大家介紹Ocelot的非常非常簡單地使用,可以說零配置,並介紹了官方的使用方法以及我平時的使用方式,只為了快速開始Ocelot,讓專案能夠跑起來。接下來我們會詳細的介紹Ocelot的配置。