1、 要指明接口輸入輸出參數使用什么方式傳遞,是用XML還是JSON還是其他。如果用分隔符分隔不同的字段,則要說明分隔符是什么,字段內容是否需要根據分隔符進行轉義,如何轉義。
例如CSV文件,分隔符是英文半角逗號",",字段內容若含有英文半角逗號,則需要用雙引號括起來;如果字段內容里含有英文半角雙引號,則需要轉義為兩個英文半角雙引號。
2、 標明字段的名稱、數據類型、最大長度、不足最大長度時是否在數據前/后補空格、是否可為null、是否可不傳、描述說明。
name字段可為null的數據示例:{"id":1, "name":null}
name字段可不傳的數據示例:{"id":1}
3、 字段的命名風格應該一致。
如果一個接口中,一個字段叫userNo,一個字段叫UserName,一個字段叫user_nick,一個字段叫做idcardno,一個字段叫做GENDER,會讓 調用方 容易混淆,解析和處理字段需要的邏輯也會更加復雜。
不同接口中字段的命名風格也應該一致,如果一個接口的字段用駝峰命名法命名,一個接口的字段用下划線命名法,也容易導致混淆出錯。
4、 同樣意義的字段命名應該一致。
如“用戶編號”字段,就不應該在一個接口中叫做userNo,在另一個接口中叫做userCode。
5、 數值字段需要標明可接受的小數位數、最大值、最小值、是否接受千分號("100,000")、是否可接受科學記數法表示("1E6")、是否可接受省略小數點前/后的0(".1"、"1.")。
6、 與貨幣有關的數值字段,需要標明單位是“元”還是“分”。
7、 日期、時間字段需要標明格式,如“yyyy-MM-dd”、“HHmmss”。
8、 字符串字段要標明編碼,如“UTF-8”、“GBK”。
9、 字符串字段如果有最小長度限制、正則表達式匹配限制或其他限制,也需要標明。
10、 按字符串搜索的接口,需要標明是准確匹配,前綴匹配,還是部分匹配。
例如用戶搜索“洗衣機”的時候,是只能搜索出”洗衣機“,還是能搜索到“洗衣機出水管”,還是連“海爾洗衣機”都能搜索到。
11、 最好給出正常的接口調用的輸入輸出數據的樣例,以便 調用方 明確接口的定義和進行初步的調試。
12、 定義好發生異常時返回的數據,以便 調用方 對異常進行處理。
例如用戶名密碼登錄的接口,要定義好數據庫訪問失敗、用戶不存在和密碼錯誤等異常的返回。
13、 最好在接口調用的路徑或參數中加入接口版本號,以便在接口升級時兼容舊版本接口。
14、 接口升級、修改時,應該在文檔中記錄好接口修改的地方,以便 調用方 快速知悉要修改的地方。
15、 在提供給手機App或者電腦應用程序的接口中,最好定義一個字段用於顯示給用戶的異常提示信息。
因為用戶不一定會及時更新手機App和電腦應用程序,如果在App中寫死異常提示信息,那么如果異常提示信息需要修改,或者接口返回了App沒有處理的異常,那么就可能顯示給用戶錯誤的或不友好的異常提示信息。如果由接口來返回異常提示信息,則可以更方便地控制顯示給用戶的異常提示信息。