【发布时间】:2011-06-02 06:52:30
【问题描述】:
我问过这个question。但是我还是不明白为什么我们需要使用不同的 HTTP 请求:DELETE/PUT/POST/GET 来构建好的 API
在请求参数中传递所有信息并为您的 api 设置一个单一入口点不是更简单吗?:
GET www.example.com/api?id=1&method=delete&returnformat=JSON
GET www.example.com/api?id=1&method=delete&returnformat=XML
或
POST www.example.com/api {post data: id=1&method=delete&returnformat=JSON}
POST www.example.com/api {post data: id=1&method=delete&returnformat=XML}
然后 - 我们可以在内部处理所有方法和数据,而无需数百个 url...
您如何称呼这种类型的 API - 显然它不是 REST,也不是 SOAP。 那么 - 它是什么?
更新 我在这里没有提出任何新标准。我只是问了一个问题,以便更好地理解为什么 Web 服务会以它们的工作方式工作。
更新 2 唔。好的——在谷歌搜索了一段时间并查看了各种 API 之后——看起来这种方法最接近 JSON-RPC 的方法。看起来很有趣。它在雅虎邮件中实现,例如:yahoo mail json-rpc api
【问题讨论】:
-
我将这种类型的 API 或 URL 命名为“丑陋”。您需要使用不同的 HTTP 请求,因为这是创建这些请求的目的。
-
如果您认为您的系统有“更少”的网址,那您就是在自欺欺人。您正在以简单的路径换取更复杂的查询参数。其余的都是主观的......
-
AFAIK,SOAP over HTTP 对所有 Web 服务请求使用 POST 方法。但这是可行的,因为 SOAP 是另一种协议(和抽象),它独立于其底层协议,而纯 HTTP 服务(或我们应该称之为 RESTful 服务)当然不是这种情况。
-
嗯。看起来我在这里要描述的最好描述为:json-rpc
标签: web-services json rest soap