1

快速提问 - 我昨天在阅读有关 RESTful 服务的内容,有人问为什么 SOAP 不是 RESTful。答案是 SOAP 不具备 REST 所要求的“接口通用性”属性。

然后让我震惊的是,我一直在向我的 Web API 添加自定义路由,如下所示: Custom Routing with ASP.NET Web API

通过这样做 - 我使我的 Web API 非通用,从而使服务非 RESTful,对吗?这没什么大不了的,我只是想知道我是否正确掌握了这些概念。

4

1 回答 1

2

其余的要求你单独识别资源,而不是对它们采取行动。例如,您可能对 Person 有一个操作 addComment,您的路线是

POST persons/2/addComment 这会让人不安。理想的方法是: POST persons/2/comments 删除评论DELETE persons/2/comments/{commebntid}

因此,如果您对此有所不同,您的服务将变得不平静。制作一个完全宁静的界面非常困难。例如,如果您有一个科目帐,您可以直接增加或减少余额 accounts/2。您可能有提款和存款操作。POST accoints/2/withdraw. 在休息时,您需要在减少余额(PUT)后将余额作为参数传递。在某些情况下,您可能不想这样做。您可能不想让世界知道用户的余额。然后你不能轻易使用put。您必须创建一个新实体:transaction并创建交易并根据交易计算账户余额。

没有通用 API 这样的东西。您不能互换使用 amazons api 和 facebooks api,因为实体和操作不同。不要太担心泛化。只需了解什么是 RESTful 方式,看看您是否可以实现它。如果你必须稍微调整一下,那很好

于 2013-10-23T08:11:12.437 回答