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:
Zuzüglich dazu gibt es noch folgende Methoden, die nur von der API genutzt werden sollen.
Meine Routingregel habe ich wie folgt definiert:
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
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:
C#-Quellcode
- 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.
Meine Routingregel habe ich wie folgt definiert:
C#-Quellcode
- 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