Using asp webapi to post a nested resource

2019-03-20 03:50发布

I am using mvc webapi to create a REST API and struggling to find an example dealing with POSTs to nested resources.

Basically, I want to POST a comment to a blog post using a URL like:

~/posts/2/comments

I would also like to be able to send DELETE and PUTs to the following

~/posts/2/comments/5

What should my route registration look like, and what should my method signature on my PostsController look like?

Thanks!

1条回答
爷的心禁止访问
2楼-- · 2019-03-20 04:07

For nested resources I would suggest that you create very specific routes for the controllers/actions that you want to access.

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
}

There's no convention in the framework for nested resources but routing gives you the flexibility to map your controllers, methods, and URIs however you see fit

查看更多
登录 后发表回答