5

我刚刚开始构建多语言 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"}

4

1 回答 1

10

对于内容协商和协商表示的自然语言,HTTP 提供请求标头Accept-Language

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

如果可能,服务器会使用响应标头Content-Language回复此请求:

Content-Language: da

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

于 2012-11-06T11:27:31.930 回答