# **懶人幫移動端api接口**
當前版本v1
基礎URL:`http://xhigh123.gicp.net`
版本基礎URL:`http://xhigh123.gicp.net/v1`
加密種子字符串:`lrb123brlapi888`
該文檔測試默認機器碼為:`310995000000000 `
和Web應用不同,RESTful APIs 通常是無狀態的, 也就意味著不應使用sessions 或 cookies, 因此每個請求應附帶某種授權憑證,因為用戶授權狀態可能沒通過sessions 或 cookies維護, 常用的做法是每個請求都發送一個秘密的access-token來認證用戶, 由于access-token可以唯一識別和認證用戶,
* * * * *
[TOC]
* * * * *
###1. 接口機制
* 采用RESTful API模式
* 增加了file緩存機制 默認緩存時間30秒(欄目列表 文章列表 文章詳情)
* 采用自定義返回數據格式,目前支持json和xml格式 格式需要在header頭信息里面指定Accept信息
~~~
Accept:application/json //xml格式為application/xml
~~~
* 采用設備唯一性標識符限制速率模式 格式需要在header頭信息里面指定DeviceId信息
~~~
DeviceId:310995000000000 //設備唯一性標識符
~~~
設備限制速率模式,默認為600秒內最多100次 超過設置的速率返回對應狀態碼代碼(429)
~~~
{
"success": false,
"data": {
"name": "Too Many Requests",
"message": "速率超過限制",
"code": 0,
"status": 429,
"type": "yii\\web\\TooManyRequestsHttpException"
}
}
~~~
* 為了防止非法程序調用接口,采用Sign簽名驗證方式,格式需要在header頭信息里面指定Sign信息(Sign加密方式為:MD5(DeviceId+加密種子字符串))
~~~
Sign:e67ce2f83ca715552c7040c6801e020f //Sign簽名
~~~
* 用戶登錄相關操作采用access-token 簽名驗證機制(簽名可放在url里,也可放在header頭信息里面)
~~~
http://www.url.com/v1/user/pwd?access-token=8fd8845bebee7096c6f7655c1b076ff6
~~~
~~~
access-token:8fd8845bebee7096c6f7655c1b076ff6 //用戶簽名
~~~
簽名驗證失敗返回對應狀態碼代碼(401)
~~~
{
"success": false,
"data": {
"name": "Unauthorized",
"message": "access-token是一個無效的憑證.",
"code": 0,
"status": 401,
"type": "yii\\web\\UnauthorizedHttpException"
}
}
~~~
* 在url中采用版本控制機制 目前為v1版本
~~~
http://www.url.com/v1/user v1表示v1版本
http://www.url.com/v1/user v2表示v2版本
~~~
* * * * *
## 2.完整請求headers頭信息演示:
每個api請求頭信息都應該包含以下信息
下面測試接口中都默認包含了此頭信息
~~~
Accept:application/json //xml格式為application/xml 默認json
DeviceId:310995000000000 //設備唯一性標識符
Sign:e67ce2f83ca715552c7040c6801e020f //Sign簽名
access-token:8fd8845bebee7096c6f7655c1b076ff6 //用戶簽名 可放入url 不存在用戶登錄操作則不需要該參數
~~~
* * * * *
## 3. 通用數據返回格式
返回成功:
~~~
{
"success": true,
"data": {
//相關數據
}
}
~~~
返回失敗:
~~~
{
"success": false,
"data": {
"name": "錯誤名稱",
"message": "錯誤信息",
"code": 0,
"status": 401, //詳細狀態碼可在4中查看
"type": "錯誤類型"
}
}
~~~
* * * * *
## 4. 返回狀態碼
~~~
200: OK。一切正常。
201: 響應 POST 請求時成功創建一個資源。Location header 包含的URL指向新創建的資源。
204: 該請求被成功處理,響應不包含正文內容 (類似 DELETE 請求)。
304: 資源沒有被修改。可以使用緩存的版本。
400: 錯誤的請求。可能通過用戶方面的多種原因引起的,例如在請求體內有無效的JSON 數據,無效的操作參數,等等。
401: 驗證失敗。
403: 已經經過身份驗證的用戶不允許訪問指定的 API 末端。
404: 所請求的資源不存在。
405: 不被允許的方法。 請檢查 Allow header 允許的HTTP方法。
415: 不支持的媒體類型。 所請求的內容類型或版本號是無效的。
422: 數據驗證失敗 (例如,響應一個 POST 請求)。 請檢查響應體內詳細的錯誤消息。
429: 請求過多。 由于限速請求被拒絕。
500: 內部服務器錯誤。 這可能是由于內部程序錯誤引起的。
~~~