使用asp web api发布嵌套资源

时间:2012-06-21 19:53:14

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

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

基本上,我想POST使用以下网址对博文发表评论:

~/posts/2/comments

我还希望能够将DELETE和PUTs发送到以下

~/posts/2/comments/5

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

谢谢!

1 个答案:

答案 0 :(得分: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

相关问题