2010-04-22 36 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