ASP.NET WebApi V2 Routing
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
-
Hallo zusammen,
ich bin gerade dabei mich in WebApi V2 einzuarbeiten. Ich bastle mir derzeit eine kleine API, um Aufträge in unserer Warenwirtschaft zum Verpacken freizugeben.
Nun habe ich aber ein Problem mit dem Routing, da die Arten der Parameter sich unterscheiden.
Folgende Methoden sollen mithilfe der API ausführbar sein:
int GetAnzahlFreizugebeneAufträge() [HttpGet] ResponseListAuftrag GetList(int offset, int size) [HttpGet] List<ResponseFreigabeAuftrag> GetFreigegebeneAufträge() [HttpPost] string Auftragfreigeben(int auftragsnummer) [HttpPost] string Auftragfreigeben(int auftragsnummer, DateTime date) [HttpDelete] string Delete(int auftragsnummer)
Zuzüglich dazu gibt es noch folgende Methoden, die nur von der API genutzt werden sollen.
[cs]List<int> GetFreizugebeneAufträgeNummern(int offset, int size)
void CheckAuftrag(int auftragsnummer)
void CheckPermissions()[/cs]
Meine Routingregel habe ich wie folgt definiert:
RouteTable.Routes.MapHttpRoute( name: "Auftragsfreigabe", routeTemplate: "api/auftragsfreigabe/{action}/{auftragsnummer}/{date}", defaults: new { controller = "auftragsfreigabe", auftragsnummer = System.Web.Http.RouteParameter.Optional, date = System.Web.Http.RouteParameter.Optional, size = System.Web.Http.RouteParameter.Optional, offset = System.Web.Http.RouteParameter.Optional } );
Nun weiß ich leider nicht, wie ich die Regel am besten definieren soll.
Die Funktionen sollen wie folgt später aufgerufen werden:
api/auftragsfreigabe/freigegeben -> List<ResponseFreigabeAuftrag> GetFreigegebeneAufträge()
api/auftragsfreigabe/freigabe/anzahl -> GetAnzahlFreizugebeneAufträge()
api/auftragsfreigabe/freigabe/10000 -> Auftragfreigeben(int auftragsnummer)
api/auftragsfreigabe/freigabe/10000/2020-02-21 -> Auftragfreigeben(int auftragsnummer, DateTime date)
api/auftragsfreigabe/freigabe/0/10 -> GetList(int offset, int size)
api/auftragsfreigabe/delete/10000 -> Delete(int auftragsnummer)
Weiß jemand, wie ich dass entsprechend bewerkstelligen kann? Aus der MSDN Seite werde ich nicht wirklich schlau, da ich hier kein Beispiel für gleiche Actions mit unterschiedlichen Parametern finden konnte.
-Marvin -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage