第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何創(chuàng)建不帶動詞的REST URL?

如何創(chuàng)建不帶動詞的REST URL?

PIPIONE 2019-12-06 15:55:03
我正在努力確定如何設(shè)計靜態(tài)URL。我全力以赴地使用帶有名詞而不是動詞的URL來解決這個問題。我們正在創(chuàng)建一項服務(wù)以實現(xiàn)財務(wù)計算器。計算器帶有一系列參數(shù),我們將通過CSV文件上傳這些參數(shù)。用例將涉及:上載新參數(shù)獲取最新參數(shù)獲取給定營業(yè)日期的參數(shù)激活一組參數(shù)驗證一組參數(shù)我收集的寧靜方法是使用以下類型的URL:/parameters/parameters/12-23-2009您可以使用以下方法實現(xiàn)前三個用例:POST,您將參數(shù)文件包含在發(fā)布請求中GET第一個URL獲取第二個URL但是,如何在沒有動詞的情況下使用第4和第5個用例呢?您不需要以下網(wǎng)址:/parameters/ID/activate/parameters/ID/validate??
查看完整描述

3 回答

?
大話西游666

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 }


查看完整回答
反對 回復(fù) 2019-12-06
?
慕桂英3389331

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)用程序,這可能是驗證錯誤;通常為未捕獲的異常保留500

    • 401 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ù)載。


查看完整回答
反對 回復(fù) 2019-12-06
?
開滿天機(jī)

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è)計和分析模式。


查看完整回答
反對 回復(fù) 2019-12-06
  • 3 回答
  • 0 關(guān)注
  • 604 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號