簡體   English   中英

REST調用和URL之間的區別

[英]Difference between REST call and URL

我從某個時候開始進入Web開發。 但最近遇到了一項舊技術, REST 我讀了很多關於REST調用的地方,我對REST服務的了解是,

  • REST服務使用JSONXML數據進行響應,這些數據可以在客戶端用於呈現DOM元素。

  • 它增強了HTTP協議的使用。

  • REST調用和普通URL之間的URL差異是:

    REST CALLwwww.xyz.com/getCart/12

    網址wwww.xyz.com/getCart.php?cartId=12

我得到了基本的區別,點擊URL會在服務器端呈現一個頁面並返回響應,而對REST服務進行AJAX調用只會返回一個JSONXML輸出,可以在客戶端解析。

我的問題是:

如果我讓我的.php頁面呈現一個JSON字符串,並且應用程序對php頁面進行AJAX調用以獲取JSON響應並在客戶端使用它來呈現DOM,那么REST調用和正常的URL調用。?

如何配置REST調用與普通URLs不同?

有很多關於REST的錯誤信息和混淆。 我並不感到驚訝,這三點是您從現有信息中理解的,但它們是錯誤的。

  • REST未與任何特定數據格式或媒體類型耦合。 REST中最重要的約束是強調統一接口,這意味着在這種情況下服務器應該能夠響應客戶端接受的任何數據格式或媒體類型。 在HTTP下,客戶端將通過Accept標頭告知它可以理解的格式,並且服務器應遵守或失敗,並顯示406 Not Acceptable錯誤。

  • 同樣,REST不會與任何特定協議耦合,盡管它經常與HTTP進行復雜化。 同樣,遵循統一接口,客戶端應該能夠遵循服務器提供的任何鏈接,以用於具有有效URI方案的任何協議。

  • URL的語義與REST完全無關。 對REST而言,最重要的是URL標識一個且只有一個資源。 URL是一個原子標識符,客戶端不應依賴其中嵌入的任何語義進行任何操作。 您提供的兩個示例在REST中都是有效的。 任何一個都沒有或多或少RESTful。

要回答您的問題,在REST應用程序下,您想象的差異不存在。 點擊URL將返回響應。 如果客戶端使用Accept: text/html標頭請求,它可能會返回由瀏覽器呈現的人性化html頁面。 如果客戶端使用Accept: application/jsonAccept: application/xml請求,它可能返回一個機器友好格式以供另一個應用程序讀取。

Rest更強調動詞,比如GETPUTPOST ......你可以調用一個方法

/api/Customers

根據您使用的動詞,它將執行get,post,put或delete。 您也可以制作更簡單的網址

/api/Customers/{id}/Orders/{id}

而不是制作一個方法

api/GetCustomersOrders?id=x&id=y. 

REST只是一種架構風格,沒有技術差異。

REST定義的一件事是您的URL需要是僅引用一個資源的原子標識符。

GET / users /:id(返回給定的用戶:id)

PUT / users /:id(用給定的id更新用戶:id)

以下是使用框架在php中創建REST API的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM