客戶端(包括瀏覽器)通過HTTP協議與服務端交換數據的描述
發起請求
header
鍵值對中的key大小寫不敏感
-
Accept: application/json
-
Content-Type:
- x-www-form-urlencoded
- form-data
- application/json
-
X-CLIENT-ID: 客戶端id
-
X-TIMESTAMP: 客戶端unix時間戳
- X-SIGN: 客戶端簽名(可選)
另外需要實現Cookie機制
method
- 寫請求使用POST
- 讀請求使用GET
body
- GET 沒有body
- POST 根據Content-Type的不同來決定Body的格式
處理響應
header
鍵值對中的key大小寫不敏感
- Status:
- 200 操作成功
- 400 請求有問題;如:表單、客戶端id、客戶端時間戳驗證失敗等
- 401 認證失敗。
- 403 無訪問權限。
- 404 請求的資源不存在。
- 409 請求處理完成但因爲業務規則限制或其他原因並未真正成功的響應
- 500 服務器錯誤
- 503 服務器維護中
body
JSON數據,因爲Accept中只約定了application/json
{"code":系統代碼(409響應時,提供一個唯一的系統代碼),"msg":返回值說明,"payload":業務數據}
業務數據中凡是約定返回JSON數組的情況,無結果時返回空數組,禁止NULL
簽名機制
- 用請求參數生成鍵值對,鍵值對爲“參數名=參數值”;其中上傳文件的參數值爲文件內容sha1結果的小寫形式。
- 所有鍵值對按照鍵自然排序,然後用“&”連接爲內容字符串。
- 使用內容字符串生成待簽名字符串,如“內容內容{應用ID}時間戳時間戳{應用密鑰}”。
注意:${}表示佔位符。
- 待簽名字符串用sha1生成簽名,結果忽略大小寫。