這篇具有很好參考價(jià)值的文章主要介紹了API 風(fēng)格 (三):RESTful & gRPC。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。
RESTful? VS??gRPC
對(duì)比項(xiàng) |
RESTful |
gRPC |
優(yōu)點(diǎn) |
- 相對(duì)來(lái)說(shuō),REST更規(guī)范、標(biāo)準(zhǔn)、通用,無(wú)論哪種語(yǔ)言都支持 HTTP 協(xié)議,可以對(duì)接外部很多系統(tǒng),只要滿足 HTTP 調(diào)用即可。
- 通常采用 JSON 作為數(shù)據(jù)通信格式,可讀性強(qiáng),開(kāi)發(fā)調(diào)試都很方便。
- 客戶端與服務(wù)端之間 松耦合,讓變更更加方便。
|
- 屏蔽網(wǎng)路細(xì)節(jié),像調(diào)用本地方法一樣,調(diào)用遠(yuǎn)程接口。
- 通常采用 Protocol Buffers 作為數(shù)據(jù)傳輸格式,這種格式數(shù)據(jù)傳輸效率高。
- 基于 HTTP/2 協(xié)議標(biāo)準(zhǔn),性能更高。
|
缺點(diǎn) |
- 擴(kuò)展性差:隨著需求的變化,單個(gè) RESTful 接口可能會(huì)變得越來(lái)越臃腫。
- 性能相對(duì)于 gRPC 偏低。
|
- Protobuf 數(shù)據(jù)格式可讀性差。
- gRPC 不支持瀏覽器調(diào)用,因此不能用作外部服務(wù)。
- 調(diào)試不方便,沒(méi)有像 RESTful 中的 postman 和 curl 之類的調(diào)試工具。
|
適用場(chǎng)景 |
- 接口對(duì)外,需要接口規(guī)范易懂。
- 對(duì)系統(tǒng)性能要求不高。
- 提供的 API 天生圍繞資源、對(duì)象、管理展開(kāi)。
|
- 消息密集型、對(duì)系統(tǒng)性能和延時(shí)要求比較高。
- 偏向內(nèi)部的 API。
- 提供的 API 很難就行資源、對(duì)象抽象。
|
更多的時(shí)候,RESTful API 和 gRPC API 是一種合作的關(guān)系,對(duì)內(nèi)業(yè)務(wù)使用 gRPC API,對(duì)外業(yè)務(wù)使用 RESTful API。

練習(xí)
已有一個(gè) gRPC 服務(wù),但是卻希望該服務(wù)同時(shí)也能提供 RESTful API 接口,這該如何實(shí)現(xiàn)?
????希望用RPC作為內(nèi)部API的通訊,同時(shí)也想對(duì)外提供RESTful API,又不想寫(xiě)兩套,
? ? 可以使用gRPC Gateway 插件,在生成RPC的同時(shí)也生成RESTful web server。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-403690.html
? ??grpc-gateway文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-403690.html
到了這里,關(guān)于API 風(fēng)格 (三):RESTful & gRPC的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!
本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!