2017-03-29 5 views
0

Als ich mit Web-API 2 arbeitete, fand ich, dass es eine geringfügige Änderung im Routing von Web-API gibt.Standard-Routing in Web-API

config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 

Ich verstehe die Funktionsweise von Routing. Außerdem habe ich festgestellt, dass es standardmäßig keinen Methodennamen im Routing gibt, obwohl wir das Routing modifizieren können und ein add-Muster für action/method hinzufügen können. Aber meine Frage ist, was die Idee hinter solch einem Routing war.

Danke Susheel

+0

Könnten Sie bitte Ihre Frage klären? meinst du mit "Idee hinter dem Erstellen solcher Routing" der Routing-Mechanismus im Allgemeinen? und auf welche Änderung im Routing beziehen Sie sich? eine andere Version? wenn ja, welches vorherige und mit welcher Version testen Sie gerade? –

Antwort

0

Es sind keine Aktionen, weil die Idee ist, dass Sie eine Methode für jede HTTP-Verb haben. z.B.

public IHttpActionResult Get() 

public IHttpActionResult Get(int id) 

public IHttpActionResult Post() 

public IHttpActionResult Put(int id) 

Das verwendete Verb bestimmt, welche Methode aufgerufen wird.

Die Idee ist, dass Controller sehr spezifisch sein sollten, was sie betreffen.
Sie können also einen "PersonController" haben, der sich mit dem Hinzufügen und Aktualisieren von Personen beschäftigt, und einen "OrdersController", der sich mit Bestellungen beschäftigt.

Offensichtlich funktioniert das in der Praxis nicht ganz so einfach, da Controller für einen Entity-Typ eine größere Reichweite als CRUD-Operationen haben.

+0

Danke, dass Sie mich aus der Verwirrung gebracht haben. –