2012-06-21 62 views
7

我正在使用mvc webapi创建一个REST API并努力寻找一个处理POST来嵌套资源的示例。使用asp webapi发布嵌套资源

基本上,我想POST使用URL喜欢博客文章评论:

~/posts/2/comments

我也想能够发送DELETE和PUTs以下

~/posts/2/comments/5

我的路线注册应该是什么样子,我的PostsController上的方法签名应该是什么样子?

谢谢!

回答

9

对于嵌套资源,我建议您为要访问的控制器/操作创建非常特定的路由。

routes.MapHttpRoute(
    name: "Posts Routes", 
    routeTemplate: "api/posts/{postId}/comments/{commentID}", 
    defaults: new { controller = "Posts", action="CommentsForPosts" } 
); 

public HttpResponseMessage CommentsForPosts(int postId, int commentID) { 
    //go to work 
} 

有在嵌套资源的框架,没有任何公约,但路由让您灵活映射你的控制器,方法和URI但是您认为合适的