【发布时间】:2015-10-26 22:46:00
【问题描述】:
我是这个游戏的新手,所以我可能会误解一些事情。实际上,如果有人告诉我我对事情有误解,那将是一个人情。也许这个人会足够体贴,给我指明正确的道路。但是……
适用于 Web 服务 (http://en.wikipedia.org/wiki/Representational_state_transfer#Applied_to_web_services) 的 REST 的“指南”或“最佳实践”之一是您应该使用正确的 HTTP 方法 调用 REST API 时(我误解了吗?)。
但是查看网络上的许多 API 实现,我发现对它们进行的 100% 调用实际上是 GET 调用,具体取决于它们的 URI,将被 API 解释为 HTTP 动词或方法之一。
因此,例如,查看 Twitter (https://dev.twitter.com/rest/public) 的 REST API 文档,该文档原则上只定义了两个动词/方法(GET 和 POST),实际上所有调用都作为 GET 发送,并且基于GET 调用中的 URI,由 API 解释并执行。
例子:
获取状态/查找:https://api.twitter.com/1.1/statuses/lookup.json
POST 状态/更新(PUT?):https://api.twitter.com/1.1/statuses/update.json
在这两种情况下,调用本身都是使用 GET 进行的,并且 URI 的最后一部分将其定义为真正的 GET 或 POST。
总之,要真正实现 RESTful,Web 服务的 REST API 的客户端实现不应该使用正确的 HTTP 动词/方法吗?
我错过了什么?
【问题讨论】:
-
“在这两种情况下,调用本身都是使用 GET 进行的”——这到底是什么意思?您的意思是即使文档指定了 POST,API 也接受常规的 GET 请求?谁在“打这些电话”?我不明白你想说什么。
-
这可能会有所帮助;超媒体支持至关重要:docs.google.com/presentation/d/…
-
还有这个:模式和反模式:docs.google.com/presentation/d/…
-
@filip26 很棒的资源。从名字看,我假设你是作者。恭喜。
标签: api rest http-method httpverbs