我在我的机器上安装了新的ASP .Net MVC4 beta,并且一直试图了解Web API的工作原理.我为一个集合(例如书籍)构建了一个演示.我在asp.net网站上关注了这个例子.我实施了自己的方法来发布收藏品,即添加新书,获取所有书籍,获取特定书籍,更新书籍和删除书籍记录.这一切都很好.
例如:
POST /books - adds a new book
GET /books - gets all books
GET /books/1 - get a particular book
PUT /books/1 - update a particular book
DELETE /books/1 - delete a particular book
现在我想在books集合中添加另一个集合,比如作者,并希望为新集合实现相同的POST,PUT,GET和DELETE调用
我希望新的调用是这样的:
POST /books/1/authors - add a new author to a book
GET /books/1/authors - gets all authors of a book
GET /books/1/authors/a@a.com - get a particular author for a book
PUT /books/1/authors/a@a.com - update a particular author for a book
DLETE /books/1/authors/a@a.com - delete a particular author for a book
我很困惑如何添加路由以使此调用工作.默认情况下,我通过项目获得此路线.
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
处理这种模式中的路由以及它们之间的集合和关联的正确方法是什么?
最佳答案 在Global中管理路由可能会令人困惑且容易出错.就个人而言,我发现属性路由包有助于大大简化路由配置.本文介绍了如何获取和使用它.
http://www.strathweb.com/2012/05/attribute-based-routing-in-asp-net-web-api/