重载POST是REST API的常见做法,尤其是在使用HTML作为媒体类型时.
但我想知道在Allow:标头中广告重载POST的正确方法是什么.
使用可以读取和更新的典型资源,可以预期:
Allow: GET, HEAD, PUT
Run Code Online (Sandbox Code Playgroud)
但是当我必须为PUT重载POST时,Allow:标题现在是否应该POST被接受?它是否应该停止提及PUT我是否希望只收到超载的POST请求?
我总是从行为角度来看待这类问题,看看哪些客户会关心响应的这方面,以及它会对这些客户产生什么影响。
那么,具体来说,哪些客户关心并使用Accept标头,这对这些客户有何影响?
首先是网络浏览器。我最初的想法是,如果您使用 CORS,则Accept标头的值可能与 Web 浏览器相关,并且可能需要包含POST. 然而那实际上是Access-Control-Allow-Methods。据我所知,Allow标头实际上对浏览器客户端没有任何行为影响。
然后是程序化客户端。在这些情况下,非重载方法很可能就是您想要列出的方法。(例如,也许您将拥有生成文档的客户端,用于检查和显示允许的方法。而且从用户的角度来看,它更有意义。)
最后,还有一些用户正在直观地检查您的 API 响应。在这种情况下,我可能会再次选择重载的方法集,因为它提供的信息更多。
简而言之 - 我可能会只列出允许的重载方法集,而不包括POST. 浏览器通常是唯一会发出过载请求的客户端,并且我不知道它Accept以任何方式使用或检查标头。
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |