2010-10-24 129 views
6

1)爲Web服務響應設置正確的MIME類型很重要嗎?REST - Web服務響應 - MIME類型?

2)什麼是a的正確MIME類型,
a)XML響應?

b)JSON響應?

application/xml 
text/xml 
application/json 
application/x-javascript 
text/javascript 
text/x-javascript 
text/x-json 

回答

7

1)爲web服務響應設置正確的 mime類型是否很重要?

絕對沒錯。如果你正在做一個真正的REST API,那麼你返回的不同媒體類型的文檔是你的API規範的重要組成部分。

2)什麼是 的正確MIME類型a)a)XML響應? b)JSON響應?

對於真正的REST服務,它取決於您的API的細節以及您定義的內容類型。

作爲一個例子(取自this excellent article值得一讀),銀行可能想要爲application/vnd.bank.org.account+xml的銀行賬戶定義一個內容類型。請注意,MIME類型「以+xml結尾,並且根據RFC 3023,XML處理器(包括XMLHttpRequest)可以像處理XML一樣處理這種表示形式。」同一家銀行也可以使用XML使用application/vnd.bank.org.transer+xml

4

如果您未設置MIME類型,則接收方無法正確解釋資源。分別使用和application/json

+7

注意'文/ xml'和'應用程序/ xml'有略微不同的用途。 'text/xml'表示主要是人類可讀/可理解的XML格式。不過,要麼取決於XML輸出的預期用途。 – BoltClock 2010-10-24 07:03:26

+0

BoltClock +1。我想寫同樣的,但我看到他的評論。看看rfc3023(見http://www.ietf.org/rfc/rfc3023.txt)並搜索「可供臨時用戶閱讀」。鏈接http://xml.silmaril.ie/developers/serversoftware/以簡要形式提供了rfc3023的主要信息。 – Oleg 2010-10-24 11:03:30

+1

使用適當的內容類型是REST的中心租戶,因此通用的xml&json類型是不合適的。如果OP詢問RPC風格的服務,你的答案會很好。但我覺得其他兩個答案更爲正確,所以爲了讓他們處於平等地位,我除了鼓吹其他人之外,還投下了你的答案。 – 2011-03-11 01:14:30

1

MIME類型對於接收者正確解釋很重要。

一)應用程序/ xml或text/xml的

B)應用/ JSON

MIME Media Types

+0

我認爲最好只是堅持文本/平原兩者! – 001 2010-10-24 14:41:22

+0

如果接收方應用程序不使用任何響應MIME類型,則可以使用任何MIME類型。對於最佳做法,您必須設置正確的MIME類型。 – ReinaldoNS 2010-10-24 20:29:49

+0

如果你做文本/純文本瀏覽器例如不知道如何正確顯示它。 – krico 2010-11-02 15:38:27

3

1)是重要的設置Web服務響應正確的MIME類型?

是。但是,這實際上取決於接收方如何預期或配置爲處理內容。使用關於內容的帶外信息構建的客戶端可以選擇忽略內容類型,或者客戶端可以使用內容類型元數據根據內容類型將表示法路由到合適的處理模塊。 Content-Type使客戶能夠理解內容,而無需查看實際內容。此外,由於您已將問題標記爲與REST相關,因此瞭解REST的自描述性約束以及媒體類型在實現此約束方面發揮的作用非常重要。如果您有興趣瞭解更多關於自我描述的內容,請閱讀section 5.2.1 of Roy's dissertation

2)什麼是 的正確MIME類型a)a)XML響應?

b)JSON響應?

應用/ XML 文本/ XML 應用/ JSON 應用程序/ x-的javascript 文本/ JavaScript的文本/ X-的javascript 文本/ X-jsontext/X-JSON

所有上述內容類型是通用的,除了說明內容是JSON還是XML外,不會向客戶端提供更多信息。您需要的是您的應用程序的特定內容類型,它不僅會告訴您的客戶端格式,還會描述語義以及如何處理內容。至於之間應用/ xxx和文本/ XXX的差,RFC 3023條規定如下:

如果是,則 未處理,源XML文檔是 通過臨時用戶可讀的XML文檔,文本/ XML是 優於application/xml。MIME 用戶代理(和網絡用戶代理),其 不具備 文本/ XML的明確支持將其當作text/plain的, 例如,通過顯示XML MIME實體爲純文本。 應用/ XML優選當 XML MIME實體是 臨時用戶不可讀。我看過一些 討論的文本/ XML可能 在未來過時,但我不知道的是that.of 。

對於JSON,正確的MIME類型是application/JSON。請參閱SO question

0

1的Content-Type)是重要的設置Web服務 響應正確的MIME類型來表示一個銀行轉賬,這個時間呢?

是的,因爲統一的接口/自描述性消息約束。消息必須包含處理它們所需的全部信息。

2)什麼是一個正確的MIME類型,

這取決於客戶要求什麼。你必須檢查accept頭。我們通常使用application/xml服務和text/xml服務靜態文件。但這並不重要。

如果您發送超鏈接,您可以使用供應商特定的MIME,也可以使用一些鏈接的數據解決方案,如JSON-LD。