我正在使用mvc webapi创建REST API,并努力寻找一个处理嵌套资源的POST的示例。
基本上,我想POST
使用以下网址对博文发表评论:
~/posts/2/comments
我还希望能够将DELETE和PUTs
发送到以下
~/posts/2/comments/5
我的路线注册应该是什么样的,我的PostsController
上的方法签名应该是什么样的?
谢谢!
答案 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