本接口設計規範,參考了restfull的部分設計理念。
資源是 Restful API 的核心元素,所有的操作都是針對特定資源進行的。
任何事物,只要有被引用到的必要,它就是壹個資源。資源可以是實體(例如手機號碼),也可以只是壹個抽象概念(例如價值) 。下面是壹些資源的例子:
Github 可以說是這方面的典範,下面我們就拿 repository 來說明。
我們可以看到幾個特性:
接口名稱應簡單明了,望文知意,接口簡介中,需描述清楚接口的具體業務功能。
原則上,接口命名規範整體采用“名詞”+“動詞”形式
接口返回或者操作的是單個資源對象,采用名稱的單數形式命名,如:/user/add,/user/del,/user/get
接口返回或者操作的是多個資源對象,采用名稱的復數形式命名,如:/users/get
針對同壹個接口,根據實際業務需求,為解決接口兼容性問題,可以對接口進行版本擴展,命名規範為“名詞”+“動詞”+“版本號”形式,版本號采用v1、v2、v3形式命名
例:/user/login ,/user/login/v1
接口返回值,將統壹采用如下格式:
{
"sign": "f64b967289ac4d8cbfdc22ad30ec9d09",
"content": "{}",
"timestamp": 1561204602005,
"desc": "成功!",
"code": "000",
"accessToken": "83BAED4DAE9DEF783FDE243F4B5C"
}
sign:返回值簽名驗簽(如果需要)
如遇第三方合作等特殊情況,根據實際情況進行設計。
壹個接口只做壹件事情
連字符"-"壹般用來分割URI中出現的字符串(單詞),來提高URI的可讀性,使用下劃線"_"來分割字符串(單詞)可能會和鏈接的樣式沖突重疊,而影響閱讀性。
根據RFC3986定義,URI是對大小寫敏感的,所以為了避免歧義,我們盡量用小寫字符。
例,針對金額,都統壹為amount,而不是有的amount,有的money。
如是對老接口進行改動,需考慮接口的兼容性,包括字段的增減、字段名稱調整、字段類型的調整、字段值內容長度的調整,字段值取值範圍的調整等。
接口壹旦發布就不易修改,要保持兼容性,拼寫錯誤也不能改了,所以要仔細檢查拼寫。
著名悲劇:unix 的 creat。
creat是壹個函數,可以用來創建壹個文件並以只寫的方式打開。
參數命名最好是定語+名詞
比如 fileName, maxSize, textColor,而不是用name、size、colour
不要用生僻單詞,也不要用漢語拼音
除非是約定俗成已經被廣泛使用的縮寫,否則老老實實用完整拼寫。
比如 有open就要有close,有login就要有logout,這些單詞基本是固定搭配的,使用者就很容易理解。
例,業務需要vip用戶,接口不允許設計為isVipUser,而應該設計為獲取用戶的會員等級接口,/user/level/get,這樣保證接口的通用性和擴展性
分頁相關接口參數命名統壹:
pageSize:每頁記錄條數
pageNum:當前頁數
totalPageNum:總***頁數
統壹以分為單位進行傳遞
建議統壹以時間毫秒數進行傳遞,避免前後端或者各種場景下日期格式不統壹