2011-05-20 36 views
3

如何構建的API,其中相同的數據可以以不同的格式請求,以RESTful格式的不同表示。例如。REST:相同的數據

GET /person/<id> //get the details of resource <id> 

現在,這取決於客戶端(瀏覽器)的要求,該數據可以作爲HTML發送(說正常渲染)或JSON(說AJAX調用)。所以我的疑惑是

  1. 我可以保持相同的網址爲這兩個請求,或應該讓他們分開?
  2. 如何檢測請求是否在服務器上的html/Json。請求類型相同(GET)。那麼我應該考慮哪個參數。
  3. 如何檢測在客戶端(HTML/JSON)\

感謝在數據類型的不同,

BSR。

回答

6

類似的問題:REST Content-Type: Should it be based on extension or Accept header?

接受的答案具有很大的點。

我可以爲這兩個請求保留相同的url,還是應該讓它們保持獨立?

是的,讓他們一樣。它是相同的資源,你只是要求它的不同表示。

如何檢測請求是否爲服務器上的html/Json。請求類型相同(GET)。那麼我應該考慮哪個參數。

您可以使用Accept標頭指定返回內容類型。

如何檢測在客戶端(HTML/JSON)\

數據類型的差異你會看一下 「的Content-Type」 頭。

+2

爲了您在開發過程中的理智,添加一個URL參數或另一個不同的URL(/ person/ .json)可能會很有用,以便您可以覆蓋Accept標頭以進行測試。必須使用cURL或其他方式檢查另一種表示形式的服務結果,這是很痛苦的。否則,我會100%同意Mr-sk。 – bcarlso 2011-05-21 05:00:06

+0

欲瞭解更多信息,請參閱sec。 HTTP規範12(http://www.w3.org/Protocols/rfc2616/rfc2616-sec12.html#sec12) – 2011-05-21 08:45:53

0

有關添加變量輸出類型是什麼?

+0

這不會是RESTful。 URL(包括URL參數)用於指定資源,而不是它們的表示。可接受的指定輸出類型的方法是'Accept'頭。 – SingleShot 2012-02-05 19:04:28

相關問題