我在我的机器上安装了新的 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
现在我想在书籍集合中添加另一个集合,比如作者,并希望为新集合实现相同的 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 }
);
在这种模式下,为集合和它们之间的关联处理路由的正确方法是什么?