Upload
manfred-steyer
View
213
Download
1
Embed Size (px)
Citation preview
1
Datengetriebene Web-APIs mit Entity Framework
Manfred Steyer
twitter.com/ManfredSteyer
ManfredSteyer
Buch-Projekte
Page 2
2
Ziel
Möglichkeiten für datengetriebene Web-APIs
mit EF und ASP.NET Web API anhand eines
Beispiels aufzeigen
Folie 3
Nicht-Ziele
Einen Client entwickeln
Einführung in Entity Framework
Folie 4
3
Inhalt
Warum datenbasierte APIs?
Überblick: Web API und EF
Lazy Loading und Web APIs
Eager Loading und Serialisierungsoptionen
Change Tracking in verteilten Systemen
Abfragen via HTTP mit OData
Folie 5
Warum datenbasierte APIs?
4
Services sind das Rückgrat
einer Anwendung
Folie 7
HTTP-Services, Web APIs
GET /flights/Graz-Frankfurt?date=2016-12-24 HTTP/1.1
Host: www.softwarearchitekt.at
Accept: text/json
HTTP/1.1 200 OK
Content-Type: text/json
[
{"Time": "1700", "FlightNumer":"LH4711", ...},
{"Time": "1800", "FlightNumer":"LH4712", ...},
…
]
5
FALLSTUDIE
Page 9
Ansätze für Change Tracking
Self Tracking Entities
Nachteil: Client muss Zustand setzen
Pro geändertem Objekt ein Serviceaufruf
Nachteil: Performance, Konsistenz?
Abgleich mit Datenbank
Nachteil: Performance
Abgleich mit ursprünglicher Version ("huckepack")
Nachteil: Performance
Folie 10
6
ODATA
Page 11
Was ist OData?
Offener Standard
Definiert wie Daten über HTTP abgefragt
werden können
?$filter=Sterne ge 3&$orderby=Bezeichnung desc
Definiert wie Daten über HTTP bearbeitet
werden können
Folie 12
7
NuGet-Package
Microsoft.AspNet.Odata
Folie 13
OData-Abfragen aktivieren
Folie 14
[EnableQuery]
public IQueryable<Hotel> Get()
{
[…]
}
8
DEMO
Page 15
Zusammenfassung
Lazy Loading deaktivieren
Serializer aus zyklische Verweise vorbereiten
(Eager Loading)
Self Tracking Entities
OData für flexible Abfragen
Folie 23