搜尋

首頁  >  問答  >  主體

php - restful api和普通的介面有什麼不同嗎?

看了一下網路上對 restful api的解釋,我感覺這個和我們平時寫的介面沒什麼不同啊,都是透過HTTP的get或是post請求傳輸數據,回傳json格式或xml格式。

就算 restful api多了這些請求方式:
PUT:在伺服器更新資源(客戶端提供完整資源資料)

DELETE:從伺服器刪除資源

HEAD : 從伺服器取得標頭資訊(不是資源)

但是他們最多只是一種傳輸資料的方式而已,比如說DELETE是刪除資源,我們要刪除一篇文章,是不是要傳一個文章ID到伺服器,但是具體的邏輯程式碼還不是和普通的介面一樣的寫法,我直接用get傳文章ID不就行了嗎,為什麼要用DELETE傳輸方式呢?

感覺我還是對restful api理解的還不夠,現在還體會不到他與普通的介面有什麼不一樣

迷茫迷茫2757 天前922

全部回覆(2)我來回復

  • ringa_lee

    ringa_lee2017-05-16 13:13:54

    RESTful API 只是API的設計規格或是一套設計理論。

    單就URL和Method這兩個點,你可以這樣理解: URL 是用來唯一標示一個互聯網資源的,而 Method 是用來標識當前請求對該資源進行什麼操作。

    你當然可以 GET http://www.xx.com/user?id=123 來刪除一個用戶,但這是不符合 RESTful API 規範的。

    符合RESTful API規格應該是 DELETE http://www.xx.com/user/123。

    這裡 http://www.xx.com/user/123 用來識別一個網路資源(某個網站的一個使用者),DELETE 用來識別我這次要求是要刪除一個使用者。

    例如我要獲取這個用戶的詳細信息,那麼我的請求時:GET http://www.xx.com/user/123,這裡還是相同的URL,但是我用GET方式請求,服務端就應該知道我只是要獲取資源信息,而不是刪除。

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:13:54

    個人對Restful api的理解是,更能清晰的去告訴別人這個操作是做什麼。當然可以使用get方式取刪除數據,但沒有delete來的清晰。
    每個框架對Restful api都有自己的定義方式(例如laravel和Yii2對Restful api的方法的命名就是不同的),但是兩種不同的定義方式,都有共同點,就是對應增刪改查方法名稱都是定好的。這種情況,開發人員去做開發的時候,就能比較清楚的去了解這個方法到底是用來做什麼的。至少命名上看起來清晰很多。
    個人愚見.....

    回覆
    0
  • 取消回覆