2010-04-22 17 views
3

我正在爲預訂應用程序設計一個RESTful API。有住宿,你可以要求一個清單或細節。由於應用程序針對的是多語言受衆,因此描述(有時)可以使用不同的語言。RESTful API:如何處理表示中的已翻譯文本字段?

現在我不知道如何處理住宿代表的這些翻譯。沒有多種語言,我會將「描述」作爲一個領域或住宿對象,很簡單。

任何想法如何解決這個優雅?

我目前的想法:添加一個描述文字列表< - >文化對而不是描述字段和一個額外的子資源/descriptions適應創建(POST),更新(PUT)和刪除(DELETE)新的翻譯。

回答

3

爲了以合適的語言檢索表示,只需設置Accept-Language HTTP標頭即可。

請求

GET /Hotel/345 
Accept-Language: fr 

響應

<Hotel> 
    <Description xml:lang='fr'>Ce edifice est magnifique</Description> 
</Hotel> 

對於做更新,你可以只包括多個描述元素,假設你使用XML作爲你的媒體類型格式。

請求

PUT /Hotel/345 

<Hotel> 
    <Description xml:lang='en'>This building is magnificent</Description> 
    <Description xml:lang='fr'>Ce edifice est magnifique</Description> 
</Hotel> 
+0

謝謝,這是我希望的,但存在於多種語言提供的說明,接受語言不是一個選項的要求。你的XML看起來不錯,但是不應該在這兩個描述中出現「」? – janpio 2010-04-22 13:39:17

+0

不需要包含單個描述的「描述」元素,完全取決於您。如果您不想使用Accept-Language,GET可以返回我用於PUT的相同文檔。這樣,你可以返回儘可能多的語言,只要你喜歡。 – 2010-04-22 13:59:45