RESTful API:如何处理表示中的翻译文本字段?

3
我正在设计一个预订应用的RESTful API。有些住宿可以请求列表或详细信息。由于该应用面向多语言受众,因此这些描述(有时)以不同语言提供。
现在我不确定如何处理住宿的这些翻译。如果没有多种语言,我会将“描述”作为住宿对象的字段来处理,非常简单。
有什么优雅的解决方案吗?
我的当前想法:添加一个包含文本<->文化对的描述列表,而不是描述字段,并为住宿添加一个额外的子资源/descriptions,用于创建(POST)、更新(PUT)和删除(DELETE)新的翻译。
1个回答

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>

谢谢,这正是我所希望的,但有一个要求需要用多种语言提供描述,Accept-Language不是一个选项。不过你的XML看起来很好,不应该在这两个描述周围加上"<Descriptions>"吗? - janpio
不需要包含单个描述的“Descriptions”元素,这完全取决于您。如果您不想使用Accept-Language,则GET可以返回我用于PUT的相同文档。这样,您可以返回任意数量的语言。 - Darrel Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接