1. 返回格式不統一
同乙個介面,有時候返回陣列,有時候返回單個;成功的時候返回物件,失敗的時候返回錯誤資訊字串。工作中有個系統整合就是這樣定義的介面,真是辣眼睛。這個對應**上,返回的型別是map,json,object,都是不應該的。實際工作中,我們會定義乙個統一的格式,就是resultbean,分頁的有另外乙個pageresultbean
錯誤範例:
//返回map可讀性不好,盡量不要@(
"/delete"
)public
map<
string
,object
>
delete
(longid,
string
lang
)// 成功返回boolean,失敗返回string,大忌@(
"/delete"
)public
object
delete
(longid,
string
lang
)catch
(exceptione)
}
2. 沒有考慮失敗情況
一開始只考慮成功場景,等後面測試發現有錯誤情況,怎麼辦,改介面唄,前後臺都改,勞民傷財無用功。
錯誤範例:
//不返回任何資料,沒有考慮失敗場景,容易返工@(
"/update"
)public
void
update
(longid,
***)
3. 出現和業務無關的輸入引數
如lang語言,當前使用者資訊 都不應該出現引數裡面,應該從當前會話裡面獲取。後面講threadlocal會說到怎麼樣去掉。除了**可讀性不好問題外,尤其是引數出現當前使用者資訊的,這是個嚴重問題。
錯誤範例:
// (當前使用者刪除資料)引數出現lang和userid,尤其是userid,大忌@(
"/delete"
)public
map<
string
,object
>
delete
(longid,
string
lang
,string
userid
)
4. 出現複雜的輸入引數
一般情況下,不允許出現例如json字串這樣的引數,這種引數可讀性極差。應該定義對應的bean。
錯誤範例:
// 引數出現json格式,可讀性不好,**也難看@(
"/update"
)public
map<
string
,object
>
update
(longid,
string
jsonstr
)
5. 沒有返回應該返回的資料
例如,新增介面一般情況下應該返回新物件的id標識,這需要程式設計經驗。新手定義的時候因為前台沒有用就不返回資料或者只返回true,這都是不恰當的。別人要不要是別人的事情,你該返回的還是應該返回。
錯誤範例:
// 約定俗成,新建應該返回新物件的資訊,只返回boolean容易導致返工@(
"/add"
)public
boolean
add(
***)
附上resultbean,沒有任何技術含量:
@data
public
class
resultbean
<
t>
implements
serializable
public
resultbean(t
data
)public
resultbean
(throwablee)
}
介面定義(REST full)規範總結
為風格統 一 便於理解,本介面文件遵循以下原則 一.返回json資料結構定義 訊息結構體 2000返回示例 4001返回示例 二.錯誤碼定義標註 定義規則 錯誤碼由四位組成 前兩位標識型別,後兩位標識具體錯誤 20xx 服務正常,並返回。最常使用的是2000 40xx 客戶端問題,介面引數 許可權等...
python介面定義規範化 對介面規範的一些思考
起因 團隊中如果不同的專案,不同的人員可能在介面設計上有許多不統一的地方。導致了開發效率低下的問題。由於我在工作中遇到了,所以整理下來,說一說自己的一些看法。怎樣進行介面規範化 因為每個人對自己使用語言有不同的理解 http協議熟悉程度不同 思維邏輯 開發經驗不一樣。對介面規範有想法的人應該提出自己...
APP介面設計規範 如何定義視覺規範
時間 2015 09 10 16 38 34 devstore 原文 墨刀 axure after effect 用來製作互動複雜的產品原型。第一階段 概念設計和原型設計 包括腦圖設計 線框圖的設計等等。第二階段 視覺定義階段。確定了使用哪些字型 顏色 布局 形狀等元素。主要頁面的布局與視覺風格需要...