2015-05-06 95 views
2

我正在開發一個小型Web服務。直到現在,我一直在用JSON做出迴應。但是,我現在正在遇到的問題是我的web服務談判,看起來像這樣的XML響應的服務器:REST混合JSON和XML?

<obj somedata="h1" somedata2="h5" xmldata="<xm debug="yes"/></xm>"/> 

xml數據屬性包含XML。我可以運行json_encode()(PHP)。但json_encode似乎不想編碼XML數據屬性。

如果我的Web服務在這種情況下用xml響應,而在其他情況下用JSON響應,這是不好的做法嗎?當然,我會將Content-Type設置爲application/xml,這也將記錄在該服務的文檔中。

但這是不好的?我是否應該盡我所能將其轉換爲JSON,僅僅是因爲我在其他API函數中使用JSON進行響應?

+0

不一致和討厭,我想 – hanshenrik

+0

是的,那是我最初的想法。尤其是因爲API用戶從不要求XML。 – Juw

回答

3

如果我的網絡服務在這種情況下用xml響應 和JSON在其他情況下是不好的做法?

是的,在某些情況下返回JSON並在其他情況下返回XML是可怕的做法。但你已經知道了。

更糟的是, 「XML」 你別說,

<obj somedata="h1" somedata2="h5" xmldata="<xm debug="yes"/></xm>"/> 

不是XML可言,因爲它不是well-formed:屬性值不能包含原始XML;你已經轉義:

  • 雙引號字符("
  • 小於字符(<)。

建議:有一個JSON接口或XML接口,或理想兩者分別

如果不能兼得,使用JSON,除非:

  • 您的數據文檔爲中心。
  • 有一個行業標準XML模式管理您的數據。
  • 您已經知道您的開發人員偏好使用XML。