首页 文章

RESTful API设计请求元数据(会话ID等)的最佳实践?

提问于
浏览
2

在设计REST API时,传递统计信息和日志记录所需的元数据的最佳做法是什么,但哪些不会更改服务器的响应?

例如,如果我有服务找到最近的公共厕所,我可能想知道用户的位置是否由GPS确定 . 或者,如果最终用户的请求通过多个系统,我可能想要传递请求ID以进行调试 .

据我了解,选项包括:

Query parameters

  • 与Google Maps API上的'sensor'参数类似 .

  • 是的,因为它允许用户使用常规Web浏览器浏览API .

  • 对,因为对于发现很难发送自定义HTTP标头的客户来说更简单 .

  • 错误,因为过滤器参数仅用于过滤,排序和搜索 .

  • 错误,因为如果资源没有改变,为什么要使用URL?

HTTP headers

  • 经常进行身份验证

  • 是的,因为它改变了服务器的响应

  • 正确的原因是,对于POST / PUT请求,它避免同时具有查询参数和请求体 .

  • 错误,因为在使用Web浏览器浏览API时无法设置 Headers .

  • 错误,因为应该避免复杂性,并且URL Header是比单独的URL更复杂的API .

如果允许元数据不存在,哪个是正确的选择?

如果元数据必须存在,答案是否不同,尽管它的值不会改变服务器的响应?

1 回答

  • 5

    HTTP标头是正确的答案 . 这就是他们的目的 .

    考虑到有多少其他可行的选项可用于测试web apis,作为调试器的Web浏览器并不是特别有效 . 像Postman,Dev HttpClient,Fiddler,Runscope这样的东西都是测试API的好方法 .

相关问题