向WEB API添加自定义路由是否使其成为非REST?

时间:2013-10-23 08:01:43

标签: rest soap asp.net-web-api

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

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

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

1 个答案:

答案 0 :(得分: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方式是什么,看看是否可以实现它。如果你需要调整一下,那很好