Ich bin ziemlich neu in API Routing und versuche, mich mit diesem Problem zu befassen.Web API 2 Routing
Nehmen wir an, wir haben eine Liste von Schokoriegel.
ich todo möchte folgendes:
ListAllCandyBars --- api/Candy
ListCandyBar via ID --- api/Candy/10
ListAllChocBars --- api/Candy/Choc
Deshalb haben wir 3 GETS
Standard Get Get mit ID Aktion
Holen Wie würden Sie die Routen und Klasse einzurichten erwarten . Ich bin nur in der Lage, entweder ListAllCandyBars und ListCandyBar über ID oder ListAllCandyBars und ListAllChocBars arbeiten zu können.
Dies ist meine aktuelle Route:
config.Routes.MapHttpRoute(
name: "WithActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional, action = RouteParameter.Optional }
);
etwas wie folgt verwenden:
public class DefaultController : ApiController
{
// GET: api/Default
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET: api/Default/5
public string Get(int id)
{
return "value";
}
// GET: api/Default/ListSub
public string ListSub(int id)
{
return "value";
}
// POST: api/Default
public void Post([FromBody]string value)
{
}
// PUT: api/Default/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE: api/Default/5
public void Delete(int id)
{
}
}
freuen uns, von Ihnen zu hören und immer vorbei an diesem kleinen Problem. PS: Es könnte mein Verständnis von Controllern sein. Sollte ich einen anderen Controller für ListAllChocBars haben?
Grüße
James
Verwenden Sie Routenattribute, anstatt sie in der Konfig zu mappen –
Das funktioniert ein Leckerbissen dank. – WJProctor