如何安排我的多语言REST API?

时间:2012-11-06 11:14:52

标签: rest spoken-language

我刚刚开始构建一个多语言REST API,并且不确定是否有任何关于如何正确整合多语言的惯例。

以下列出了我提出的替代方案,而不知道哪种方式最有意义。

选项1:
URI中的语言变量:http://myapi.com/en/users/john

选项2:
仅返回翻译客户端的错误代码: GET http://myapi.com/users/john => HTTP 404 {status: false, error_code: "321"}

选项3:
以所有可用语言返回:GET http://myapi.com/users/john => {status: false, error_en: "User not found", error_sv: "Anvandaren finns inte"}

1 个答案:

答案 0 :(得分:10)

对于content negotiation,就谈判表示的自然语言而言,HTTP提供了request header Accept-Language

Accept-Language: da, en-gb;q=0.8, en;q=0.7

如果可能,服务器会使用response header Content-Language

回复此请求
Content-Language: da

仅当资源是不同语言的不同资源时,该语言才应成为URI的一部分。如果没有,则应使用内容协商。