2017-06-06 98 views
-1

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

示例是广告提交。

  • 我的选项1:

参数(...,...,title_en,title_pt,description_en,description_pt)

POST请求(名称,值)

some_field1, "some text1" 
some_field2, "some text2" 
title_en, "Some Title" 
title_pt, "Algum Titulo" 
description_en, "Some Description" 
description_pt, "Alguma Descrição" 
  • 我的选项2:

参数(...,...,标题,描述)

POST请求(名称,值)

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

我的问题:什么是做一个REST的正确方法API?

最好的问候, 安德烈

+0

什么是资源的媒体类型为发布到API? –

回答

0

没有“正确”的方式来做到这一点 - 相反,它是什么格式的数据将被询问,是最容易合作的问题。

从面向对象的角度来看,选项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"}] 
+1

“,而是在服务器端解析数据的格式,这是最容易处理的问题。”该API旨在为客户提供服务。目标应该是优化客户端的便利性,而不是服务器的。 –

+0

@EricStein这是一个误解我的观点的问题 - 我没有注意到服务器比客户端更重要,我注意到以这种格式查找与语言相关的值会更容易。我将编辑我的答案以删除'服务器'特定的措辞。 –