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

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

使用 Postgres 的 Express REST API 的 HTTP 方法

使用 Postgres 的 Express REST API 的 HTTP 方法

MMTTMM 2023-08-24 21:09:29
我正在使用 Express 和 Postgres 實(shí)現(xiàn) REST APIS。在端點(diǎn)中,我想首先通過(guò) FK user_id 從表中刪除所有實(shí)例,然后插入具有相同 user_id 的多個(gè)新實(shí)例。我想知道在這種情況下我應(yīng)該使用哪種 http 方法?目前我使用 POST 但我不知道這是否合適??磥?lái)使用 PUT 也可以正常工作。router.post('/myTable', auth, async (req, res) => {  const client = await pool.connect();  try {    await client.query('BEGIN');    const { records } = req.body;    await client.query('DELETE FROM my_table WHERE user_id=$1', [req.user_id]);    for (i in records) {      await client.query('INSERT INTO my_table (name, user_id) VALUES ($1, $2)',[records[i], req.user_id]);    }    await client.query('COMMIT');    res.send();      } catch (error) {    console.log(error);    await client.query('ROLLBACK');  } finally {    client.release();  }});
查看完整描述

3 回答

?
開(kāi)滿天機(jī)

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

PUT用于創(chuàng)建/替換您指定的 URI 處的資源。

因此,如果一個(gè)資源存在,它有一個(gè)客戶端知道的 URI,并且通過(guò)請(qǐng)求PUT替換那里的內(nèi)容,這PUT是最有意義的。

PUT相對(duì)于 POST的一大好處是PUT冪等性。

PUT因此,如果您向端點(diǎn)發(fā)送請(qǐng)求/myTable,則隱含的含義是您正在替換 ,并且同一端點(diǎn)上的myTable后續(xù)請(qǐng)求將為您提供與剛剛發(fā)送的內(nèi)容在語(yǔ)義上相似的響應(yīng)。GET

如果我的上述任何假設(shè)是錯(cuò)誤的,您很可能會(huì)想要POST,這更像是一種通用的包羅萬(wàn)象的方法,可以在較少的限制下進(jìn)行更改。POST缺點(diǎn)是,我認(rèn)為在不檢查/理解主體的情況下,給定請(qǐng)求的操作不太明顯,并且您也會(huì)失去冪等性的好處。


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
尚方寶劍之說(shuō)

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

目前我使用 POST 但我不知道這是否合適。

規(guī)則#1:如果您不確定,可以使用 POST。

POST 在 HTTP 中具有許多有用的用途,包括“此操作不值得標(biāo)準(zhǔn)化”的一般用途。


看來(lái)使用 PUT 也可以正常工作。

從某種意義上說(shuō),任何方法在源服務(wù)器上“都能正常工作”。HTTP 定義了請(qǐng)求語(yǔ)義——消息的含義。它不限制實(shí)施。

然而,通用客戶端會(huì)假設(shè)您的服務(wù)器理解 GET/HEAD/POST/PUT 等,就像其他 Web 服務(wù)器理解它們一樣。這是 REST 架構(gòu)風(fēng)格的強(qiáng)大功能的重要組成部分 - 任何符合標(biāo)準(zhǔn)的客戶端都可以與任何符合標(biāo)準(zhǔn)的服務(wù)器進(jìn)行通信,并且它可以正常工作。此外,如果我們?cè)谒鼈冎g插入任何符合標(biāo)準(zhǔn)的緩存/代理,它會(huì)繼續(xù)以完全相同的方式工作。

但是,如果您使用204 No Content響應(yīng)PUT請(qǐng)求,那么通用組件將理解這與任何其他服務(wù)器返回的含義相同。也就是說(shuō),如果你偏離標(biāo)準(zhǔn)而導(dǎo)致財(cái)產(chǎn)損失,你的服務(wù)員要承擔(dān)責(zé)任。


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
料青山看我應(yīng)如是

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

您可以在這里查看答案以供參考。它們得到了很好的解釋。?REST 中的 PUT 與 POST

但由于兩者可以達(dá)到相同的目的,并且僅取決于您的偏好或要求,因此我通常使用 post 來(lái)創(chuàng)建資源并更新資源作為一種實(shí)踐。


查看完整回答
反對(duì) 回復(fù) 2023-08-24
  • 3 回答
  • 0 關(guān)注
  • 259 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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