2012-06-21 8 views
7

Ich verwende mvc webapi, um eine REST-API zu erstellen, und kämpfe, um ein Beispiel zu finden, das sich mit verschachtelten POST-Ressourcen befasst.Verwenden von asp webapi zum Posten einer verschachtelten Ressource

Grundsätzlich ich POST einen Kommentar zu einem Blog-Post wollen über eine URL wie:

~/posts/2/comments

Ich würde auch

~/posts/2/comments/5 senden DELETE und PUTs an folgende

gerne in der Lage sein,

Wie sollte meine Routenregistrierung aussehen und wie sollte meine Methodensignatur auf meinem PostsController aussehen?

Danke!

Antwort

9

Für verschachtelte Ressourcen würde ich vorschlagen, dass Sie sehr spezifische Routen für die Controller/Aktionen erstellen, auf die Sie zugreifen möchten.

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 
} 

Es gibt keine Konvention im Rahmen für verschachtelte Ressourcen, sondern Routing gibt Ihnen die Flexibilität, Ihre Controller, Methoden zur Karte und URIs aber Sie sehen, passen

Verwandte Themen