????最近在項目上接觸到webhook殊者,順帶牽扯出Rest, gRPC, GraphQL這幾個概念舒岸,但沒搞清楚其中的差別在哪抚太,于是去網(wǎng)上找相關介紹督弓,卻又發(fā)現(xiàn)網(wǎng)上的介紹都太過術語化营曼,所以想能不能自己用通俗的語言來說清楚這幾個概念的差別。
????今天在點外賣的時候突發(fā)靈感愚隧,這幾個概念都是跟服務獲取相關蒂阱,似乎可以用外賣服務來解釋這幾個概念的差別。
????首先是Rest狂塘,大家可能都聽過Restful API录煤,可能是最普遍的資源獲取方式,這就類似我們最常見的點外賣的方式荞胡,你通過外賣app妈踊,選擇你要的外賣,可以是蛋炒飯泪漂,蘭州拉面廊营,黃燜雞,下單付款窖梁,就可以等著外賣送到家門口了赘风。
????第二個概念gRPC,相對Rest纵刘,是一種輕量級邀窃,效率更高的實現(xiàn)方式,特別是在資源受限的場景,比如你沒有手機瞬捕,但恰好樓下就是外賣店鞍历,于是你直接靠喊,告訴老板你要一份蛋炒飯肪虎,做好后老板再直接給你送上樓劣砍。
????至于GraphQL,可以說是Rest的升級版扇救,通過GraphQL刑枝,你不但可以指定想要的資源,還能指定資源的組織方式迅腔,就像現(xiàn)在外賣店升級了装畅,你不但可以告訴老板你要一份蛋炒飯,還可以告訴老板多加個蛋沧烈、不加蔥花掠兄、不加香菜等個性化需求。
????最后一個概念webhook锌雀,這個就厲害了蚂夕,前面幾個概念都是你每次點外賣润脸,都告訴老板你要什么监氢,老板再根據(jù)你的需求提供相應的外賣者疤,到了webhook弄贿,這個關系反過來了骤宣,你只需要先跟老板約定你每天都要吃什么浸锨,然后約定每天幾點給你送餐砂心,老板到了時間就會把外賣準備好稚补,準時的送到你家柬泽。
以上是個人對這幾個概念的理解慎菲,歡迎大家拍磚。
參考鏈接:https://nordicapis.com/when-to-use-what-rest-graphql-webhooks-grpc/