国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

            手機(jī)站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

            千鋒教育

            掃一掃進(jìn)入千鋒手機(jī)站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

            當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 如何理解RESTful API的冪等性?

            如何理解RESTful API的冪等性?

            來(lái)源:千鋒教育
            發(fā)布人:qyf
            時(shí)間: 2022-08-03 11:40:00 1659498000

            如何理解 RESTful API 的冪等性

              1. 什么是冪等性?

              HTTP 冪等方法,是指無(wú)論調(diào)用多少次都不會(huì)有不同結(jié)果的 HTTP 方法。不管你調(diào)用一次,還是調(diào)用一百次,一千次,結(jié)果都是相同的。

              GET /tickets # 獲取ticket列表

              GET /tickets/12 # 查看某個(gè)具體的ticket

              POST /tickets # 新建一個(gè)ticket

              PUT /tickets/12 # 更新ticket 12

              PATCH /tickets/12 # 更新ticket 12

              DELETE /tickets/12 # 刪除ticekt 12

              2. HTTP GET 方法

              HTTP GET 方法,用于獲取資源,不管調(diào)用多少次接口,結(jié)果都不會(huì)改變,所以是冪等的。

              GET /tickets # 獲取ticket列表

              GET /tickets/12 # 查看某個(gè)具體的ticket

              只是查詢數(shù)據(jù),不會(huì)影響到資源的變化,因此我們認(rèn)為它冪等。

              值得注意,冪等性指的是作用于結(jié)果而非資源本身。怎么理解呢?例如,這個(gè) HTTP GET 方法可能會(huì)每次得到不同的返回內(nèi)容,但并不影響資源。

              可能你會(huì)問(wèn)有這種情況么?當(dāng)然有咯。例如,我們有一個(gè)接口獲取當(dāng)前時(shí)間,我們就應(yīng)該設(shè)計(jì)成

              GET /service_time # 獲取服務(wù)器當(dāng)前時(shí)間

              它本身不會(huì)對(duì)資源本身產(chǎn)生影響,因此滿足冪等性。

              3. HTTP POST 方法

              HTTP POST 方法是一個(gè)非冪等方法,因?yàn)檎{(diào)用多次,都將產(chǎn)生新的資源。

              POST /tickets # 新建一個(gè)ticket

              因?yàn)樗鼤?huì)對(duì)資源本身產(chǎn)生影響,每次調(diào)用都會(huì)有新的資源產(chǎn)生,因此不滿足冪等性。

              4. HTTP PUT 方法

              HTTP PUT 方法是不是冪等的呢?我們來(lái)看下

              PUT /tickets/12 # 更新ticket 12

              因?yàn)樗苯影褜?shí)體部分的數(shù)據(jù)替換到服務(wù)器的資源,我們多次調(diào)用它,只會(huì)產(chǎn)生一次影響,但是有相同結(jié)果的 HTTP 方法,所以滿足冪等性。

              5. HTTP PATCH 方法

              HTTP PATCH 方法是非冪等的。HTTP POST 方法和 HTTP PUT 方法可能比較好理解,但是 HTTP PATCH 方法只是更新部分資源,怎么是非冪等的呢?

              因?yàn)?,PATCH 提供的實(shí)體則需要根據(jù)程序或其它協(xié)議的定義,解析后在服務(wù)器上執(zhí)行,以此來(lái)修改服務(wù)器上的資源。換句話說(shuō),PATCH 請(qǐng)求是會(huì)執(zhí)行某個(gè)程序的,如果重復(fù)提交,程序可能執(zhí)行多次,對(duì)服務(wù)器上的資源就可能造成額外的影響,這就可以解釋它為什么是非冪等的了。

              可能你還不能理解這點(diǎn)。我們舉個(gè)例子

              PATCH /tickets/12 # 更新ticket 12

              此時(shí),我們服務(wù)端對(duì)方法的處理是,當(dāng)調(diào)用一次方法,更新部分字段,將這條 ticket 記錄的操作記錄加一,這次,每次調(diào)用的資源是不是變了呢,所以它是有可能是非冪等的操作。

              6. HTTP DELETE 方法

              HTTP DELETE 方法用于刪除資源,會(huì)將資源刪除。

              DELETE /tickets/12 # 刪除ticekt 12

              調(diào)用一次和多次對(duì)資源產(chǎn)生影響是相同的,所以也滿足冪等性。

              你是怎么理解 RESTful的?

              2000 年,Roy Thomas Fielding 博士在他那篇著名的博士論文《Architectural Styles and the Design of Network-based Software Architectures》中提出了幾種軟件應(yīng)用的架構(gòu)風(fēng)格,REST 作為其中的一種架構(gòu)風(fēng)格,在這篇論文的第5章中進(jìn)行了概括性的介紹。

              REST 是“REpresentational State Transfer”的縮寫(xiě),可以翻譯成“表現(xiàn)狀態(tài)轉(zhuǎn)換”,但是在絕大多數(shù)場(chǎng)合中我們只說(shuō) REST 或者 RESTful。Fielding 在論文中將 REST 定位為“分布式超媒體應(yīng)用(Distributed Hypermedia System)”的架構(gòu)風(fēng)格,它在文中提到一個(gè)名為“HATEOAS(Hypermedia as the engine of application state)”的概念。

              我們利用一個(gè)面向最終用戶的 Web 應(yīng)用來(lái)對(duì)這個(gè)概念進(jìn)行簡(jiǎn)單闡述:這里所謂的應(yīng)用狀態(tài)(Application State)表示 Web 應(yīng)用的客戶端的狀態(tài),簡(jiǎn)單起見(jiàn)可以理解為會(huì)話狀態(tài)。資源在瀏覽器中以超媒體的形式呈現(xiàn),通過(guò)點(diǎn)擊超媒體中的鏈接可以獲取其它相關(guān)的資源或者對(duì)當(dāng)前資源進(jìn)行相應(yīng)的處理,獲取的資源或者針對(duì)資源處理的響應(yīng)同樣以超媒體的形式再次呈現(xiàn)在瀏覽器上。由此可見(jiàn),超媒體成為了驅(qū)動(dòng)客戶端會(huì)話狀態(tài)的轉(zhuǎn)換的引擎。

              借助于超媒體這種特殊的資源呈現(xiàn)方式,應(yīng)用狀態(tài)的轉(zhuǎn)換體現(xiàn)為瀏覽器中呈現(xiàn)資源的轉(zhuǎn)換。如果將超媒體進(jìn)一步抽象成一般意義上的資源呈現(xiàn)(Representation )方式,那么應(yīng)用狀態(tài)變成了可被呈現(xiàn)的狀態(tài)(REpresentational State)。應(yīng)用狀態(tài)之間的轉(zhuǎn)換就成了可被呈現(xiàn)的狀態(tài)裝換(REpresentational State Transfer),這就是 REST。

              總結(jié):REST 是一種很籠統(tǒng)的概念,它代表一種架構(gòu)風(fēng)格。

              更多關(guān)于“Java培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢(mèng)想。

            tags:
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
            請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
            免費(fèi)領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT
            服務(wù)器為什么要用Linux?

            服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

            2023-10-14 12:34:11
            ORM解決的主要問(wèn)題是什么?

            ORM(對(duì)象關(guān)系映射)解決的主要問(wèn)題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

            2023-10-14 12:26:19
            Go為什么不支持三元運(yùn)算符?

            Go為什么不支持三元運(yùn)算符Go語(yǔ)言是一種以簡(jiǎn)潔和有效性為目標(biāo)的編程語(yǔ)言,因此在設(shè)計(jì)過(guò)程中,Go的設(shè)計(jì)者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

            2023-10-14 12:12:36
            IT通常說(shuō)的平臺(tái)是什么意思?

            在信息技術(shù)(IT)領(lǐng)域,”平臺(tái)”這個(gè)詞有著廣泛的含義,它常常指代支持軟件應(yīng)用開(kāi)發(fā)和運(yùn)行的基礎(chǔ)框架和環(huán)境。以下是對(duì)”平臺(tái)”這個(gè)概念的更深入...詳情>>

            2023-10-14 11:55:36
            什么是PowerPivot?

            什么是PowerPivotPowerPivot,全稱”P(pán)owerPivot for Excel”,是Microsoft提供的一種數(shù)據(jù)分析工具,可以作為Excel的插件使用。通過(guò)PowerPivot,...詳情>>

            2023-10-14 11:25:48