2012-06-21 23 views
7

Estoy usando mvc webapi para crear una API REST y estoy luchando para encontrar un ejemplo que trate con POST a los recursos anidados.Usando asp webapi para publicar un recurso anidado

Básicamente, quiero POST un comentario a una entrada de blog utilizando una URL como:

~/posts/2/comments

también me gustaría ser capaz de enviar DELETE y PUTs a la siguiente

~/posts/2/comments/5

¿Cómo debería ser mi registro de ruta y cómo debería ser la firma de mi método en mi PostsController?

Gracias!

Respuesta

9

Para recursos anidados, le sugiero que cree rutas muy específicas para los controladores/acciones a los que desea acceder.

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 
} 

No hay convención en el marco de los recursos anidados pero enrutamiento le da la flexibilidad para asignar los controladores, los métodos y los URI sin embargo le parezca

Cuestiones relacionadas