Ocelot的使用 基本使用

2021-10-10 17:48:40 字數 2667 閱讀 1808

ocelot是在.net core下閘道器的實現類庫,通過ocelot可以統一管理我們的webapi,不用再**中調來調去的很多api位址,統一從閘道器呼叫就行了。

記錄下如何簡單的使用ocelot

1.新建gateway的閘道器專案,以及webapi的示例專案service1和service2

在gateway專案中引用ocelot類庫通過nuget安裝

2.ocelot需要通過配置檔案來實現請求的**

建立ocelot.json配置檔案

", //請求路徑模板

"upstreamhttpmethod": [ "get", "post" ], //請求方法陣列

"useservicediscovery": false, //啟用服務發現

//downstream表示下游請求,即api gateway**的目標服務位址

"downstreampathtemplate": "/api/", //下游請求位址模板

"downstreamscheme": "http", //請求協議,目前應該是支援http和https

//a***************指定單個**位址

"downstreamhostandports": [ //請求服務位址]}

],"globalconfiguration":

}}

我們的目的是通過請求gateway將請求**到service1的webapi上。

然後在programe.cs是裡修改createwebhostbuilder方法,指定讀取ocelot.json配置檔案,指定gateway在7000埠

3.在startup.cs中註冊服務

}4.接下來對service1的webapi示例專案中的programe.cs中指定7001埠執行

然後增加了乙個webapi的控制器

namespace service1.controllers ");

}public iactionresult adduser([frombody] dynamic userdto) ,");}}

}

此時我們可以通過http://localhost:7001/api/values/getbyid?id=123進行訪問會有內容輸出

5.啟動gateway和service1兩個專案後

我們可以通過http://localhost:7000/service1/values/getbyid?id=123進行訪問了,此時我們是通過閘道器來進行請求**的形式訪問了。

關鍵是在上面的ocelot.json的配置檔案中,

"downstreamhostandports": [ //請求服務位址

]我們將請求**到下游host:localhost,port:7001中了。

關於ocelot標準的配置

使用Ocelot做閘道器

1首先建立乙個json的配置檔案,檔名隨便取,我取ocelot.json 這個配置檔案有兩種配置方式,第一種,手動填寫 服務所在的ip和埠 第二種,用consul進行服務發現 第一種如下 手動指明ip和埠號 downstreamhostandports 請求格式 例如,我的ocelot ip是127...

Ocelot中使用Butterfly實踐

ocelot 是乙個用.net core實現的api閘道器,butterfly 是用.net core實現的全程式跟蹤,現在,ocelot中可以使用butterfly了,關於ocelot和butterfly具體功能參見各自的github站點,關於ocelot和butterfly組合實現,引數張善友部...

使用 Ocelot 匹配路由的方法匹配路由

之前我們在 ocelot 閘道器的基礎上自定義了乙個認證授權的 ocelot 中介軟體,根據請求的路徑和 method 進行匹配,找到對應的許可權配置,並判斷是否可以擁有訪問資源的角色,如果沒有則返回 401 403,如果有許可權則 到下游服務。原來的匹配方式是首先根據請求路徑和方法完全匹配,如果匹...