2 回答

TA貢獻(xiàn)1833條經(jīng)驗 獲得超4個贊
如果是我來設(shè)計api的話,我不太會考慮WebSocket,理由如下:
WebSocket主要還是用來支持 長連接 服務(wù)的,api一般則是短連接居多,業(yè)務(wù)模式上不太適合
WebSocket的client端開發(fā)和調(diào)試難度明顯大于普通的HTTP。現(xiàn)在所有基于HTTP的api都可以比較方便的用curl直接在命令行調(diào)試,WebSocket就不可能有這樣的便利了。再加上你還要考慮瀏覽器兼容性,這說明你還是要提供一套基于傳統(tǒng)HTTP的api,所以不如只提供HTTP的好了
WebSocket也有跨域問題,且各種細(xì)節(jié)與普通HTTP跨域幾乎一樣
流量方面WebSocket也不一定省,這就看client連接server的頻率了,畢竟WebSocket握手還是挺復(fù)雜的。至于傳輸?shù)膬?nèi)容如果要省,那就是純粹由業(yè)務(wù)來控制了,理論上你也可以對傳輸內(nèi)容進(jìn)行壓縮的,不過一般沒人這么做,因為這勢必會提高使用者調(diào)試api的難度。
WebSocket自身性能如何我不確定,我雖然用過,但沒有把它和其他類似技術(shù)進(jìn)行橫向比較,這個我就不瞎說了。

TA貢獻(xiàn)1818條經(jīng)驗 獲得超11個贊
RESTful本身只是一個架構(gòu)或者模式,它一般建立在http之上的吧。
api使用協(xié)議的權(quán)衡點在于:保持連接與創(chuàng)建連接,哪個代價更低就選擇哪個。
添加回答
舉報