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,如果有許可權則 到下游服務。原來的匹配方式是首先根據請求路徑和方法完全匹配,如果匹...