天天看點

為什麼我要推薦你使用Core WebApi?

2020年了,放眼望去,單體架構已經漸行漸遠,分布式架構大行其道,微服務更是如火如荼。作為分布式實施的基礎,跨程序通信的技術也是五花八門,為什麼Core WebApi越來越火,被衆多大牛們一直推薦?小編這就為你一一解答!

3種跨程序互動方式

01

基于第三方存儲共享的通訊

基于第三方存儲共享的通訊,資料庫/Redis/隊列等,特點是被動通訊,滿足及時性要求低的場景。

02

基于Http協定的服務

如WebService、WCF、WebApi,甚至還有ashx一般處理程式,使用最廣泛。

03 遠端調用模式

遠端調用模式,包括FX下的RPC和.NetCore下的gRPC,有使用限制和優異的性能。大部分的開發者和項目選型中,第二類是最為廣泛的。下文對gRPC和WebApi有細緻比對。

.Net下的服務選型

細想後我們不難發現,從最初的WebService一統江山,到.NetFramework3.0推出的集大成者WCF,卻在4.0的時候被更輕巧的WebApi所打敗。更好的REST風格支援(WCF也可以但很麻煩),對移動端的友好支援等,甚至跟MVC同一個開發技術棧,這些理由很充分的讓技術團隊都傾向于使用WebApi。

為什麼我要推薦你使用Core WebApi?

Core WebApi的變化

WebApi剛出來時,大家都非常興奮,終于有原生的RESTful API了,但實踐中卻發現太多槽點,跟MVC架構同項目不同管道,鑒權授權參數綁定也很不友好,讓學習者苦不堪言。然而,這個在Core WebApi得到了轉變,和Asp.NetCore管道的統一,讓大家開發和學習成本都降低了,再加上跨平台的優勢,和全新中間件模式加成,毫不客氣地說,CoreWebApi已經成為當下服務的首選。

為什麼我要推薦你使用Core WebApi?

Core WebApi VS gRPC

這兩個是目前.Net Core下最熱門的分布式通信方式了, gRPC是client/server模式通信的,支援流式通信,性能更高一些,相對的使用場景和實施成本也會高一些,REST的通用性更強,像典型的前後端分離架構,當下各公衆平台對外資料提供,都是選擇的REST接口,包括在微服務架構實施上,Core WebApi使用還是更廣泛一些。

為什麼我要推薦你使用Core WebApi?

4天學好Core WebApi

DAY1

上手實踐,宇宙第一IDE輕松建項目就能運作,然後把swagger啊,log4net啥配置起來,先感受下,當然,進階點的可以用Nginx來組叢集負載均衡搭建,好好體會下REST的無狀态。

DAY2

内置IOC容器和middleware翻翻源碼了解一下,知道請求是怎麼處理怎麼流轉的,後面功能開發時才心裡有底(面試也輕松)。

DAY3

各種Filter擴充定制,像異常處理、鑒權授權、跨域、緩存壓縮等常見功能,都是基于Filter的AOP實作的,必須得紮實下。

DAY4

最後是架構元件整合了,搭建一套快速開發架構,整合下EFCore,autofac等,把JWT,資料格式定好,基本就萬事大吉了。

繼續閱讀