为了账号安全,请及时绑定邮箱和手机立即绑定

带有语言和区域的REST API请求

带有语言和区域的REST API请求

30秒到达战场 2021-04-02 14:11:18
我正在开发REST API,我需要实现一种方法,该方法需要语言和国家/地区才能以正确的格式生成结果,因为结果包含数字和日期。我正在使用HTTPAccept-Language标头来获取语言。规范将标头定义为语言说明符,但是现在我不确定使用此标头获取国家/地区是否正确。例如,我希望以西班牙语显示结果,但以英语格式显示数字(用逗号代替点号)。标头是否es-US为可接受的值Accept-Language?我当时想我可以像X-CountryREST API一样开发一个新的自定义标头。有什么想法吗?谢谢。
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

通常,它主要围绕内容协商和“ Accept-Language”标头。如果需要分别管理货币,则一般共识似乎保留在有效负载中,而不是标题中,但是如果要执行标题,我会这样做 X-Accept-Currency(类似于其他HTTP Accept标题,但使用ISO 4217货币代码)X-Content-Currency

更新:事情已经改变-如果您打算提交标头以进行标准化,则不应在其前面加上X。


查看完整回答
反对 回复 2021-04-21
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

我当时想我可以像X-CountryREST API一样开发一个新的自定义标头。


如果标准HTTP标头之一适合您的需求,我将避免使用自定义标头。


标头是否es-US为可接受的值Accept-Language?


是的,es-US(西班牙语/美国)是有效的语言环境(请参见下面的注释),并且它是Accept-Language标头的合适值:


5.3.5。接受语言


的Accept-Language报头字段可以由用户代理被用于指示所述一组响应中的是优选的自然语言的。语言标签在第3.1.3.1节中定义。[...]


以下引用了第3.1.3.1节的相关部分:


3.1.3.1。语言标签


RFC 5646中定义的语言标签标识人类说,写或以其他方式传达的自然语言,用于将信息传达给其他人类。明确排除了计算机语言。[...]


语言标签是一个或多个不区分大小写的子标签的序列,每个子标签由连字符(-,%x2D)分隔。在大多数情况下,语言标签由主要的语言子标签组成,该子语言标签标识了广泛的相关语言家族(例如en=英语),然后可以选择后面跟着一系列子标签,这些子标签可以缩小或缩小该语言的范围(例如en-CA= (在加拿大使用)。语言标记内不允许使用空格。标签示例包括:


fr, en-US, es-419, az-Arab, x-pig-latin, man-Nkoo-GN



查看完整回答
反对 回复 2021-04-21
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

有什么想法吗?谢谢。

我的建议是从为您支持的每个语言(语言,国家/地区)都拥有一个资源开始,然后担心是否要拥有一个进行内容协商的资源。

使用内容协商的资源的简单模式是使用Content-Location标头指向协商的语言/国家/地区对的特定资源。


查看完整回答
反对 回复 2021-04-21
  • 3 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信