標籤:配置 watch family ble nta 架構 擴充 設定 ali
1
、前言
微服務架構概念的提出已經有非常長一段時間了,但在近期幾年卻開始頻繁地出現,大家都著手升級成微服務架構,使用著各種技術,大家認為架構有服務治理就是微服務,實現單一協議的服務調用,微服務雖然沒有太明確的定義,但是我認為服務應該是一個或者一組相對較小且獨立的功能單元,可以自由組合拆分,針對於業務模組的 CRUD 可以註冊為服務,而每個服務都是高度自治的,從開發,部署都是獨立,而每個服務只做單一功能,利用領域驅動設計去更好的拆分成粒度更小的模組,而架構本身提供了多種協議,如ws,tcp,http,mqtt,rtp,rtcp, 並且有各種功能的中介軟體,所開發的業務模組,通過架構可以適用於各種業務情境,讓開發人員專註於業務開發這才是真正意義上的微服務。
以上只是談下微服務,避免一些人走向誤區。而這篇文章主要介紹下surging如何使用swagger 組件測試業務模組
surging源碼下載
2、如何使用swagger
surging 整合了Kestrel組件並且擴充swagger組件,以下介紹下如何使用swagger組件
xml文檔檔案設定
針對於 swagger 需要產生 schema,那麼需要載入介面模組的xml文檔檔案,可以通過項目-屬性-產生-xml文檔檔案 進行設定,如所示
通過以上設定,如果掃描載入業務模組,可以使用dotnet publish -c release 產生模組檔案,如所示
檔案配置
使用swagger ,如果使用官方提供的surging 引擎的話,就需要開啟Kestrel組件,如以下配置所示
"Surging": { "Ip": "${Surging_Server_IP}|127.0.0.1", "WatchInterval": 30, "Port": "${Surging_Server_Port}|98", "MappingIp": "${Mapping_ip}", "MappingPort": "${Mapping_Port}", "Token": "true", "MaxConcurrentRequests": 20, "ExecutionTimeoutInMilliseconds": 30000, "Protocol": "${Protocol}|None", //Http、Tcp、None "RootPath": "${RootPath}|D:\\userapp", "Ports": { "HttpPort": "${HttpPort}|280", "WSPort": "${WSPort}|96" }, "RequestCacheEnabled": false, "Packages": [ { "TypeName": "EnginePartModule", "Using": "${UseEngineParts}|DotNettyModule;NLogModule;MessagePackModule;ConsulModule;KestrelHttpModule;WSProtocolModule;EventBusRabbitMQModule;CachingModule;" } ] }
以下是配置swagger,如果不添加以下配置,可以禁用swagger
"Swagger": { "Version": "${SwaggerVersion}|V1", // "127.0.0.1:8500", "Title": "${SwaggerTitle}|Surging Demo", "Description": "${SwaggerDes}|surging demo", "Contact": { "Name": "API Support", "Url": "https://github.com/dotnetcore/surging", "Email": "[email protected]" }, "License": { "Name": "MIT", "Url": "https://github.com/dotnetcore/surging/blob/master/LICENSE" } }
通過以上設定,就可以通過http://127.0.0.1:280/swagger進行訪問,效果如所示
測試上傳檔案
測試下載檔案
Post 測試
GET 測試
五、總結
通過swagger 引擎組件能夠產生業務介面文檔,能夠更好的和團隊進行協作,而surging計劃是去網關中心化,會擴充‘關卡(stage)‘引擎組件以代替網關,同時也會擴充更多的通訊協定,也歡迎大家擴充引擎組件,讓生態更強大。
surging如何使用swagger 組件測試業務模組