RESTAPI,多语言设计

RESTAPI,多语言设计,rest,api-design,Rest,Api Design,我正在设计一个RESTAPI(这是第一次),对于如何在POST请求中处理多语言,我有很多疑问 这个例子是一个广告提交 我的选择1: 参数(…,…,title_en,title_pt,description_en,description_pt) POST请求(名称、值) 我的选择2: 参数(…,…,标题,说明) POST请求(名称、值) 我的问题是:在RESTAPI中正确的方法是什么 致以最良好的祝愿, André没有“正确”的方法可以做到这一点——相反,最容易使用的是查询数据的格式 从面

我正在设计一个RESTAPI(这是第一次),对于如何在POST请求中处理多语言,我有很多疑问

这个例子是一个广告提交

  • 我的选择1:
参数(…,…,title_en,title_pt,description_en,description_pt)

POST请求(名称、值)

  • 我的选择2:
参数(…,…,标题,说明)

POST请求(名称、值)

我的问题是:在RESTAPI中正确的方法是什么

致以最良好的祝愿,
André

没有“正确”的方法可以做到这一点——相反,最容易使用的是查询数据的格式

从面向对象的角度来看,选项2更容易使用,因为您不必对字段名执行任何字符串操作来确定要使用哪种语言

也就是说,从面向对象的角度来看,第三个选项更有用:

some_field1, "some text1"
some_field2, "some text2"
titles, [{"language":"en","value":"Some Title"},{"language":"pt",value":"Algum Titulo"}]
descriptions, [{"language":"en","value":"Some Description"},{"language":"pt","value":"Alguma Descrição"}]

“相反,在服务器端解析数据的格式是最容易使用的。”API的存在是为了服务于客户端。我们的目标应该是优化客户端的便利性,而不是服务器的便利性。@EricStein这是一个误解我的观点的问题-我没有注意到服务器比客户端更重要,我注意到以这种格式找到与语言相关的值会更容易。我将编辑我的答案以删除特定于“服务器”的措辞。发布到API的资源的媒体类型是什么?
some_field1, "some text1"
some_field2, "some text2"
titles, [{"en":"Some Title","pt":"Algum Titulo"}]
descriptions, [{"en":"Some Description","pt":"Alguma Descrição"}]
some_field1, "some text1"
some_field2, "some text2"
titles, [{"language":"en","value":"Some Title"},{"language":"pt",value":"Algum Titulo"}]
descriptions, [{"language":"en","value":"Some Description"},{"language":"pt","value":"Alguma Descrição"}]