9
1 Datengetriebene Web-APIs mit Entity Framework Manfred Steyer twitter.com/ManfredSteyer ManfredSteyer Buch-Projekte Page 2

Datengetriebene Web APIs mit Entity Framework

Embed Size (px)

Citation preview

Page 1: Datengetriebene Web APIs mit Entity Framework

1

Datengetriebene Web-APIs mit Entity Framework

Manfred Steyer

twitter.com/ManfredSteyer

ManfredSteyer

Buch-Projekte

Page 2

Page 2: Datengetriebene Web APIs mit Entity Framework

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

Page 3: Datengetriebene Web APIs mit Entity Framework

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?

Page 4: Datengetriebene Web APIs mit Entity Framework

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", ...},

]

Page 5: Datengetriebene Web APIs mit Entity Framework

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

Page 6: Datengetriebene Web APIs mit Entity Framework

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

Page 7: Datengetriebene Web APIs mit Entity Framework

7

NuGet-Package

Microsoft.AspNet.Odata

Folie 13

OData-Abfragen aktivieren

Folie 14

[EnableQuery]

public IQueryable<Hotel> Get()

{

[…]

}

Page 8: Datengetriebene Web APIs mit Entity Framework

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

Page 9: Datengetriebene Web APIs mit Entity Framework

9

[email protected]

SOFTWAREarchitekt.at

ManfredSteyer

Contact