我有一个返回枚举的 RESTful 服务。
当我想到返回字符串将取决于客户端的语言环境时,我正在考虑是否为枚举值返回整数或字符串。
那么应该如何处理 REST 中的本地化呢?语言环境是 conneg 的一部分吗?
我有一个返回枚举的 RESTful 服务。
当我想到返回字符串将取决于客户端的语言环境时,我正在考虑是否为枚举值返回整数或字符串。
那么应该如何处理 REST 中的本地化呢?语言环境是 conneg 的一部分吗?
本地化是内容协商的一部分,语言首选项使用Accept-Language
标头 ( RFC ) 指定。
RFC 对允许服务返回的内容非常严格——例如,如果没有发送标头,那么您可以选择任何语言,但如果包含标头,那么您只能返回一种请求的语言,并且不允许退回到不同的语言。
换句话说,如果一个资源只有英文版本,那么请求的资源Accept-Language: de
应该返回406 Unacceptable
而不是默认显示英文版本。
在其他几个问题( 8204816、7892502)中讨论了不使用规范但允许回退选项的其他替代方案。