REST api, GET和时区作为参数或标头



什么是正确的/首选的REST api设计来获取依赖于时区的数据?

我正在考虑简单地添加时区作为URL参数,所以:

$ curl www.api.example.com/data?timezone="Europe/Amsterdam"

但是有人建议使用自定义头以类似github的方式:

$ curl -H "X-Time-Zone: Europe/Amsterdam" www.api.example.com/data

https://developer.github.com/v3/using-the-time-zone-header

我想知道在这里使用header而不是param的好处是什么?这样的决定背后有什么设计模式吗?

是否接受路径、查询字符串、标题或内容体中的输入参数,这完全取决于您。

然而,有人可能会说,当头文件不是你所调用的api的主要关注点时,头文件是有意义的。例如,如果您的api专门用于检索时区的属性,那么我建议将其传递到url上,或者在您在问题中建议的查询字符串上,或者在路径(www.api.example.com/timezone/europe/amsterdam)上。

还请注意,您给出的在头中使用参数的示例是POST调用。虽然没有禁止,但在POST中传递查询字符串参数通常没有多大意义。通过将时区作为消息头传递,消息体可以关注所发布的内容。

相关内容

  • 没有找到相关文章

最新更新