3 回答

TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊
也許像這樣:
PUT /parameters/activation HTTP/1.1
Content-Type: application/json; encoding=UTF-8
Content-Length: 18
{ "active": true }

TA貢獻(xiàn)2036條經(jīng)驗 獲得超8個贊
良好URI設(shè)計的一般原則:
不要使用查詢參數(shù)來更改狀態(tài)
如果可以,請不要使用大小寫混合的路徑;小寫是最好的
不要在URI中使用特定于實現(xiàn)的擴(kuò)展名(.php,.py,.pl等)
不要隨便使用URI 進(jìn)入RPC
不要限制你的URI的空間盡可能地
路徑段要盡量短
做不是選
/resource
或/resource/
; 從您不使用的位置創(chuàng)建301重定向做一個資源的子選擇使用查詢參數(shù); 即分頁,搜索查詢
DO移動的東西出來的URI的,應(yīng)該是在HTTP報頭或身體
(注意:我沒有說“ RESTful URI設(shè)計”; URI在REST中本質(zhì)上是不透明的。)
HTTP方法選擇的一般原則:
永遠(yuǎn)不要使用GET更改狀態(tài);這是讓Googlebot破壞您一天的好方法
除非要更新整個資源,否則不要使用PUT
除非您也可以合法地對同一URI執(zhí)行GET,否則請勿使用PUT
不要使用POST來檢索壽命長或可能合理緩存的信息
不執(zhí)行不操作冪等與PUT
不要使用GET為盡可能
做優(yōu)先投入使用POST有疑問時
不要使用文章時,你要做的東西,感覺RPC樣
不要使用PUT對資源類,較大或分層
請優(yōu)先使用刪除博文,刪除資源
請勿將GET用于計算之類的事情,除非您的輸入很大,在這種情況下,請使用POST
使用HTTP進(jìn)行Web服務(wù)設(shè)計的一般原則:
不要將元數(shù)據(jù)放在應(yīng)放在標(biāo)題中的響應(yīng)主體中
請勿將元數(shù)據(jù)放在單獨(dú)的資源中,除非包含元數(shù)據(jù)會造成大量開銷
請使用適當(dāng)?shù)臓顟B(tài)碼
201 Created
創(chuàng)建資源后;發(fā)送響應(yīng)時資源必須存在202 Accepted
成功執(zhí)行操作或異步創(chuàng)建資源后400 Bad Request
當(dāng)某人對明顯偽造的數(shù)據(jù)進(jìn)行操作時;對于您的應(yīng)用程序,這可能是驗證錯誤;通常為未捕獲的異常保留500401 Unauthorized
當(dāng)有人在不提供必要Authorization
標(biāo)頭的情況下訪問您的API 時,或其中的憑據(jù)Authorization
無效時;如果您不希望通過Authorization
標(biāo)頭獲得憑據(jù),請不要使用此響應(yīng)代碼。403 Forbidden
當(dāng)有人以惡意方式或未經(jīng)授權(quán)的方式訪問您的API時405 Method Not Allowed
當(dāng)某人使用POST時應(yīng)該使用PUT等413 Request Entity Too Large
當(dāng)某人試圖向您發(fā)送不可接受的大文件時418 I'm a teapot
嘗試用茶壺沖泡咖啡時不要使用緩存頭時,您可以
ETag
當(dāng)您可以輕松地將資源減少為哈希值時,標(biāo)頭就很好Last-Modified
應(yīng)該向您表明,保持資源更新的時間戳記是一個好主意Cache-Control
并且Expires
應(yīng)該被賦予明智的價值做一切你能兌現(xiàn)在請求緩存頭(
If-None-Modified
,If-Modified-Since
)請在合理的情況下使用重定向,但是對于Web服務(wù)來說,重定向應(yīng)該很少
關(guān)于您的特定問題,POST應(yīng)該用于#4和#5。這些操作屬于上面的“類似于RPC”的準(zhǔn)則。對于#5,請記住POST不一定必須使用Content-Type: application/x-www-form-urlencoded
。這很容易就是JSON或CSV負(fù)載。

TA貢獻(xiàn)1786條經(jīng)驗 獲得超13個贊
每當(dāng)您需要新的動詞時,請考慮將其轉(zhuǎn)換為名詞。例如,將“激活”轉(zhuǎn)換為“激活”,將“驗證”轉(zhuǎn)換為“驗證”。
但是僅從您編寫的內(nèi)容來看,我會說您的應(yīng)用程序存在更大的問題。
每當(dāng)提出一種稱為“參數(shù)”的資源時,它都應(yīng)該在每個項目團(tuán)隊成員的腦海中發(fā)出危險信號?!皡?shù)”實際上可以應(yīng)用于任何資源;還不夠具體。
“參數(shù)”到底代表什么?可能有很多不同的事物,每個事物都應(yīng)該有一個專用于它的資源。
另一種解決方法-與最終用戶(可能對編程了解甚少的最終用戶)討論應(yīng)用程序時,他們自己反復(fù)使用哪些詞?
這些是您應(yīng)該在周圍設(shè)計應(yīng)用程序的詞。
如果您尚未與潛在用戶進(jìn)行這種轉(zhuǎn)換,請立即停止一切操作,除非您這樣做,否則不要再編寫其他代碼!只有這樣,您的團(tuán)隊才能了解需要構(gòu)建什么。
我對金融軟件一無所知,但是如果我不得不猜測,我會說某些資源可能會使用“ Report”,“ Payment”,“ Transfer”和“ Currency”之類的名稱。
關(guān)于軟件設(shè)計過程的這一部分,有很多不錯的書。我可以推薦的兩個是域驅(qū)動設(shè)計和分析模式。
- 3 回答
- 0 關(guān)注
- 604 瀏覽
添加回答
舉報