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!
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With