1. 1
Web APIs mit ASP.NET MVC Core 1
Manfred Steyer
twitter.com/ManfredSteyer
ManfredSteyer
ROUTING UND WEB APIS
Page 2
2. 2
Was ist Routing?
Url Action-Methode
Folie 3
Web APIs in MVC Core 1
Kein eigenes Routing für Web APIs
Selbe Konzept, wie für MVC-Anwendungen
Routing berücksichtigt keine URL-Parameter
Folie 5
3. 3
Standard-Route in MVC
Folie 6
// Startup.cs
app.UseMvc(routes =>
{
routes.MapRoute(
name:"default",
template:"{controller=Home}/{action=Index}/{id?}");
});
Nutzung der Standard-Route
Folie 7
public class FlugController: Controller
{
public Flug GetById(int id) { […] }
public List<Flug> GetByRoute(string von, string nach) { […] }
public List<Flug> GetByDate(DateTime datum) { […] }
public void PostFlug([FromBody] Flug flug) { […] }
}
4. 4
Nutzung der Standard-Route
Folie 8
public class FlugController: Controller
{
// GET|PUT|POST|… Flug/GetById/{id}
public Flug GetById(int id) { […] }
public List<Flug> GetByRoute(string von, string nach) { […] }
public List<Flug> GetByDate(DateTime datum) { […] }
public void PostFlug([FromBody] Flug flug) { […] }
}
Nutzung der Standard-Route
Folie 9
public class FlugController: Controller
{
// GET|PUT|POST|… Flug/GetById/{id}
public Flug GetById(int id) { […] }
// GET|PUT|POST|… Flug/GetByRoute?von=…&nach=…
public List<Flug> GetByRoute(string von, string nach) { […] }
// GET|PUT|POST|… Flug/GetByDate?datum=…
public List<Flug> GetByDate(DateTime datum) { […] }
// GET|PUT|POST|… Flug/PostFlug
public void PostFlug([FromBody] Flug flug) { […] }
}
5. 5
Web API mit Attribut-basierten Routen
Folie 10
[Route("api/[controller]")]
public class FlugController: Controller
{
[HttpGet("{id}")]
public Flug GetById(int id) { […] }
[HttpGet("byRoute")]
public List<Flug> GetByRoute(string von, string nach) { […] }
[HttpPost]
public void PostFlug([FromBody] Flug flug) { […] }
}
Web API mit Attribut-basierten Routen
Folie 11
[Route("api/[controller]")]
public class FlugController: Controller
{
// GET api/flug/{id}
[HttpGet("{id}")]
public Flug GetById(int id) { […] }
[HttpGet("byRoute")]
public List<Flug> GetByRoute(string von, string nach) { […] }
[HttpPost]
public void PostFlug([FromBody] Flug flug) { […] }
}
6. 6
Web API mit Attribut-basierten Routen
Folie 12
[Route("api/[controller]")]
public class FlugController: Controller
{
// GET api/flug/{id}
[HttpGet("{id}")]
public Flug GetById(int id) { […] }
// GET api/flug/byRoute?von=...&nach=...
[HttpGet("byRoute")]
public List<Flug> GetByRoute(string von, string nach) { […] }
[HttpPost]
public void PostFlug([FromBody] Flug flug) { […] }
}
Web API mit Attribut-basierten Routen
Folie 13
[Route("api/[controller]")]
public class FlugController: Controller
{
// GET api/flug/{id}
[HttpGet("{id}")]
public Flug GetById(int id) { […] }
// GET api/flug/byRoute?von=...&nach=...
[HttpGet("byRoute")]
public List<Flug> GetByRoute(string von, string nach) { […] }
// POST api/flug
[HttpPost]
public void PostFlug([FromBody] Flug flug) { […] }
}