我想将我的资源本地化为多种语言。 如何使用REST架构将多种语言发布到资源?
资源:/章节,/章节/:id
当POST发布到章节时,客户端发送数据结构:
{localizations: { en: {title: 'New chapter' },sk: {title: 'Nova kapitola'} }}
创建了本地化en和sk的新章节。
当客户想要在URL / chapter / 1访问本章时,只应在表示中返回一种语言变异。我该如何实现区域设置范围? 我可以使用Accept-Language HTTP标头和所需的语言环境,Accept-Language:sk,或者我可以将语言环境包含在URL中,如/ chapters / 1 / en。
另外,应该如何处理PUT请求?大多数情况下,只会更新一种语言变异,但有时会更新其中的两种或更多种。
答案 0 :(得分:1)
为了更新数据,应该在数据的有效负载中提供语言,就像您所描述的那样。这很有效。
对于提取,取决于您是否允许1)可链接性,以及2)客户端更改其选定的语言。我认为你想要两者 - 更容易和更可取的是更改URL或在应用程序中切换语言然后在浏览器中更改并更改浏览器范围的区域设置。
因此,请检查您的网址,应用程序Cookie或该语言的应用程序用户数据,并使用Accept-Language标头作为后备。
我不明白您的PUT请求问题。您描述的数据结构可以处理多种语言更新,不是吗?您可以随意处理PUT,只要PUT的URL仍然是可寻址的资源。