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

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

重構(gòu)非 REST 兼容請求

重構(gòu)非 REST 兼容請求

紅顏莎娜 2023-03-09 16:53:32
我正在開發(fā)一個報告系統(tǒng),該系統(tǒng)通過網(wǎng)絡(luò)服務(wù)調(diào)用為圖表數(shù)據(jù)提供服務(wù)。在某些情況下完成搜索,在其他情況下完成配置更新。代碼的 UI 端恰好是 Angular,后端是 Java,Oracle 作為持久性存儲。有趣的是,除了普通的 JDBC 之外,沒有使用任何 Java 持久性框架。但是,我的問題至少與這些事情無關(guān)。幾乎所有對資源之類的請求都是通過 POST 請求發(fā)出的。因此,獲取特定報告的數(shù)據(jù)是一個 POST 請求,狀態(tài)返回在基于 JSON 的響應(yīng)中(OK 表示有效,ERROR 表示無效)。這不是我對 REST 標(biāo)準(zhǔn)的理解。我原以為開發(fā)人員應(yīng)該對資源發(fā)出 GET 請求,通過查詢字符串參數(shù)或請求標(biāo)頭提供輸入。改變狀態(tài)或資源的調(diào)用將通過 POST 或 PUT 進行。不遵循這些標(biāo)準(zhǔn)而只是采用我們自己的范例并發(fā)布所有內(nèi)容的后果是什么?
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

TA貢獻1862條經(jīng)驗 獲得超6個贊

不遵循這些標(biāo)準(zhǔn)而只是采用我們自己的范例并發(fā)布所有內(nèi)容的后果是什么?

您放棄的是通用組件在了解請求是安全的情況下可以提供的優(yōu)勢。

例如,Web 瀏覽器可以通過主動獲取您可能需要的資源表示來優(yōu)化用戶體驗。

同樣,在不穩(wěn)定的網(wǎng)絡(luò)上,如果響應(yīng)丟失,通用組件可以知道重試請求——因為請求的語義保證這樣做沒有風(fēng)險。

此外,如果一切都是 POST,那么您將不斷從 HTTP 感知緩存中逐出表示。 緩存約束在 REST 架構(gòu)風(fēng)格中很重要——事實上我們可以從網(wǎng)絡(luò)下載一次表示然后重新使用它,這是擴展網(wǎng)絡(luò)的關(guān)鍵部分。

HTTP 規(guī)范的一個有趣的角落是,它304 Not Modified不是POST 請求的允許響應(yīng)代碼之一。沒有條件 GET 的模擬。

當(dāng)一切正常時POST,您正在采用一個應(yīng)用程序協(xié)議并將其變成一個啞消息隧道,僅向通用組件提供對正在發(fā)生的事情的最弱可能的語義描述。

這并不一定意味著對所有內(nèi)容都使用 POST 是錯誤的。SOAP 走的是這條路,而 GraphQL 似乎也在走這條路。HTTP 沒有針對遠程過程調(diào)用風(fēng)格進行優(yōu)化,但它是有能力的。


查看完整回答
反對 回復(fù) 2023-03-09
  • 1 回答
  • 0 關(guān)注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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