簡體   English   中英

RESTful服務是否可以為同一資源返回JSON和XML,具體取決於請求標頭?

[英]Can a RESTful service return both JSON and XML for the same resource, depending on the request header?

我有一個簡單的RESTful方法,它當前返回一個對象的JSON表示。

我的問題更多的是從架構的角度而不是完全技術性的。

是否應該以這樣的方式設計RESTful服務,使其同時返回JSON和XML?

據我所知,這是一種不好的做法,應該為此定義單獨的資源。 一個資源應返回JSON數據和其他一個XML。

我是否正確思考?

根據請求,相同的資源可能返回XML或JSON,但它不應同時返回兩者。 您將根據請求知道要返回哪一個,因此無需生成兩者 - 只需生成您將返回的那個。

以下是您可以選擇決定返回的方式。 按順序評估,在確定要返回的格式時停止:

  1. 如果已將擴展添加到資源( GET /user/1234.jsonGET /user/1234.xml ), GET /user/1234.xml其用作請求的格式。
  2. 如果設置了Accept標頭,請將該標頭的值用作請求的格式。
  3. 如果存在請求主體(如POST的情況),並且Content-Type標頭指定JSON或XML,請使用它。
  4. 如果以上都不適用,請使用默認格式(通常使用JSON作為默認格式,除非您的客戶通常仍在使用XML)。

不可以。您表示資源的方式應根據客戶的期望來定義(有一個http-header表示客戶接受的表示形式)。 這意味着您的服務器應該檢查當前客戶端接受的表示形式,並以此表示形式發送響應(或發送一個響應,表明他不能代表該媒體類型中的資源)

暫無
暫無

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

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