快速提问 - 昨天我正在阅读有关RESTful服务的内容,有人问过为什么SOAP不是RESTful。答案是SOAP没有REST所要求的“接口通用性”属性。
然后让我感到震惊的是我一直在向我的Web API添加自定义路由,如下所示: Custom Routing with ASP.NET Web API
通过这样做 - 我使我的Web API非通用,从而使服务非RESTful,对吧?这不是什么大问题,我只是想知道我是否正确掌握了这些概念。
答案 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方式是什么,看看是否可以实现它。如果你需要调整一下,那很好