Kam*_*zic 5 rest timezone http-headers
什么是正确/首选的 REST api 设计来获取取决于时区的数据?
我正在考虑简单地将时区添加为 URL 参数,因此:
$ curl www.api.example.com/data?timezone="Europe/Amsterdam"
Run Code Online (Sandbox Code Playgroud)
但是有人建议以类似于 github 的方式使用自定义标头:
$ curl -H "X-Time-Zone: Europe/Amsterdam" www.api.example.com/data
Run Code Online (Sandbox Code Playgroud)
https://developer.github.com/v3/#using-the-time-zone-header
我想知道在这里使用 header 而不是 param 有什么好处?这样的决定背后是否有任何设计模式?
无论您希望在路径、查询字符串、标题还是内容正文中接受输入参数,这完全取决于您。
但是,有人可能会争辩说,当标题不是您正在调用的 api 的主要关注点时,它是有意义的。例如,如果您的 api 专门用于检索时区的属性,那么我建议将它传递到 url 上,或者在您在问题中建议的查询字符串上,或者在路径上(www.api.example.com /时区/欧洲/阿姆斯特丹)。
另请注意,您提供的在标头中使用参数的示例是 POST 调用。虽然它没有被禁止,但在 POST 中传递查询字符串参数通常没有多大意义。通过将时区作为标题传递,消息的正文可以专注于发布的内容。
| 归档时间: |
|
| 查看次数: |
3149 次 |
| 最近记录: |