kostenloser Webspace werbefrei: lima-city


ASP.NET WebApi V2 Routing

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!