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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

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

1 回答

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

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

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

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

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

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

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

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

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

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


查看完整回答
反對(duì) 回復(fù) 2023-03-09
  • 1 回答
  • 0 關(guān)注
  • 117 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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