SOAP
百度百科的解釋:Simple Object Access Protocol,簡單對象訪問協議,它是交換數據的一種協議規範,是一種輕量的、簡單的、基於XML(標準通用標記語言下的一個子集)的協議,它被設計成在WEB上交換結構化的和固化的信息。
W3C的解釋:簡單對象訪問協議是一種通信協議。用於應用程序之間的通信,是一種用於發送消息的格式,被設計用來通過因特網進行通信,它獨立於平臺,獨立於語言,基於XML,簡單可擴展,允許繞過防火牆
REST
Representational State Transfer,表述性狀態傳遞,簡稱REST,一種軟件架構風格。
REST 是基於資源的,每個資源都有一個唯一的資源標識符,同一個資源具有多種表現形式(xml,json等),對資源的各種操作不會改變資源標識符,所有的操作都是無狀態的
特徵 | 解釋 |
---|---|
客戶-服務器 | 提供服務的服務器和使用服務的客戶需要被隔離對待 |
無狀態 | 來自客戶的每一個請求必須包含服務器處理該請求所需的所有信息。換句話說,服務器端不能存儲來自某個客戶的某個請求中的信息,並在該客戶的其他請求中使用 |
可緩存 | 服務器必須讓客戶知道請求是否可以被緩存 |
分層系統 | 服務器和客戶之間的通信必須被這樣標準化:允許服務器和客戶之間的中間層(Ross:代理,網關等)可以代替服務器對客戶的請求進行迴應,而且這些對客戶來說不需要特別支持 |
統一接口 | 客戶和服務器之間通信的方法必須是統一化的,GET,POST,PUT.DELETE, etc |
支持按需代碼 | 服務器可以提供一些代碼或者腳本(Ross:Javascrpt,flash,etc)並在客戶的運行環境中執行。這條準則是這些準則中唯一不必必須滿足的一條 |
RESTful
RESTful是REST的派生,下面羅列出RESTful的幾個最佳實踐
- http動詞
- post
- get
- put
- delete
- 狀態碼
- 200、201、202
- 400、401、403、404
- 500
- 錯誤碼:自定義的錯誤ID號,比如微信的錯誤碼
- 統一描述錯誤:錯誤碼,錯誤信息,當前url
- 使用token令牌來授權和驗證身份
- 版本控制
- 測試與生產環境分開
- url語義要明確,最好望文知意
- 最好有一份比較標準的文檔
參考文檔:REST API詳解,RESTful 架構詳解