Web-API-routing-Aktionen

Ziel ist es, diese vier Endpunkte:

POST    v1/invoices<br/>
POST    v1/invoices/12345<br/>
POST    v1/invoices/12345/attachment<br/>
POST    v1/invoices/12345/image

Routing-Einträge:

routes.MapHttpRoute(
        name: "InvoiceAttachments",
        routeTemplate: "v1/invoices/{id}/attachments",
        defaults: new { controller = "invoices", action = "PostAttachment" }
    );

routes.MapHttpRoute(
        name: "InvoiceImages",
        routeTemplate: "v1/invoices/{id}/images",
        defaults: new { controller = "invoices", action = "PostImage" }
    );

Diese sind meine vier Funktions-Definitionen in der Steuerung:

[HttpPost]
[ActionName("PostAttachment")]
public HttpResponseMessage PostAttachment(int id)

[HttpPost]
[ActionName("PostImage")]
public HttpResponseMessage PostImage(int id)

[HttpPost]
public HttpResponseMessage Post(int id)    

[HttpPost]
public HttpResponseMessage Post()

Aber wenn ich die post eine Rechnung über die erste URI, für die Strecke, wird erkannt, ist die Anlagen-route. Wie kann ich die endpoints mit verschiedenen Abschnitten, nachdem die ID-variable?

InformationsquelleAutor NiX | 2013-06-04
Schreibe einen Kommentar