2017-06-06 138 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這是一個誤解我的觀點的問題 - 我沒有注意到服務器比客戶端更重要,我注意到以這種格式查找與語言相關的值會更容易。我將編輯我的答案以刪除'服務器'特定的措辭。 –