我正在开发一个REST API,我需要实现一个方法,该方法需要语言和国家/地区才能以正确的格式生成结果,因为结果包含数字和日期。
我使用HTTPHTTP头来获取语言。规范将标题定义为语言说明符,但现在我不确定使用此标题获取国家/地区是否正确。例如,我希望允许结果为西班牙语,但数字格式为英语(使用逗号而不是点)。
Accept-Language
报头是否接受es-US
值?
我在想,我可以为我的REST API开发一个新的自定义头部,比如X-Country
。
有什么想法吗?谢谢。
发布于 2018-06-22 11:22:02
关于如何使用localize your APIs,有很多很好的文档。甚至还有一个stack overflow response about it。
它主要围绕着content negotiation和"Accept-Language“头。如果你需要单独管理货币,一般的共识似乎是在有效负载中,而不是在头部中,但如果你要做头部,我会在请求上做X-Accept-Currency
(行为类似于其他HTTP Accept头部,但使用ISO4217货币代码),在响应上做X-Content-Currency
。
更新:事情已经改变了-如果你打算提交你的头部进行标准化,你不应该给它加前缀X。
发布于 2018-06-22 11:37:18
有什么想法吗?谢谢。
我的建议是,首先为您支持的每个(语言、国家)提供一个资源,然后再考虑是否要有一个执行content negotiation的资源。
对于使用内容协商的资源,一种简单的模式是使用Content-Location头回指向协商的语言/国家/地区对的特定资源。
另请参阅2012年的Tom Christie's answer,特别是指向Fielding's comment in 2006的链接
https://stackoverflow.com/questions/50986333
复制