2012-06-21 9 views
7

Sto utilizzando mvc webapi per creare un'API REST e ho difficoltà a trovare un esempio relativo ai POST alle risorse nidificate.Utilizzo di asp webapi per inviare una risorsa nidificata

Fondamentalmente, voglio POST un commento ad un post sul blog utilizzando un URL del tipo:

~/posts/2/comments

Vorrei anche essere in grado di inviare DELETE e PUTs al seguente

~/posts/2/comments/5

Come dovrebbe essere la registrazione del mio percorso e quale dovrebbe essere la firma del mio metodo sul mio PostsController?

Grazie!

risposta

9

Per le risorse nidificate suggerisco di creare percorsi molto specifici per i controller/azioni a cui si desidera accedere.

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 
} 

Non c'è nessuna convenzione nel quadro delle risorse nidificate, ma di routing ti dà la flessibilità di mappare i controller, i metodi e gli URI invece si vede in forma

Problemi correlati