KursRepository zu Kurs ASP.NET Core Web API - RESTful Webservices mit C# der ppedv AG
- WheaterForecastAPI erstellt
- Projektstruktur erklärt
- httpFiles
- IOC mittels Dependency Injection
- Config aus Appsettings.json auslesen
- Lifecycles in ServiceCollection: Transient, Scoped, Singleton
- Dependency Tree aufloesen
- BusinessLogic Class Library Project erstellt
- Service und Domain Model
- Contracts
- Controller mit CRUD Operationen
- Route constraints
- Model Binding
- LAB: Movie Store Api
- MediaTypes & Formatters
- ActionResults als JSON, XML und CSV
- Best Practices: DTOs, Mapper
- ModelState & Validation Attributes
- LAB: Movie Store Refactoring
- Code First: VehicleManagement Datenbank
- Datenklasse mit Attriuten versetzt
- DbContext & Seeding
- Abhängigkeiten via DI registriert
- Async/Await Pattern
- LAB: DB für Movie Store erstellen
dotnet tool install --global dotnet-ef
dotnet ef migrations add myInitialScript --project myProject
dotnet ef database update --project myProject
Alternativ DB erzeugen via Package Manager Console
Add-Migration MyInitialScriptName
Update-Database
- Db First: Northwind Datenbank
- Northwind DB
- VS Extension EF Core Power Tools
- Controller erzeugen
- LAB: Daten von Northwind abfragen * Alle Bestellungen * Alle Bestellungen innerhalb eines Zeitraumes (Parameter: StartDate, EndDate) * Bestellungen pro Kunde (Parameter: CustomerID) * Kunden pro Land (Parameter: Country)
- Überblick Strategien
- Unit Testing Controllers
- Moq benutzen um Controller Dependencies zu mocken
- LocalDB benutzen
- Api schuetzen mit Api-Key via Middleware
- Console App welche Anfragen auf die Northwind API macht
- Response als JSON deserialisieren
-
Middleware für Authentication konfigurieren
-
IdentityDbContext verwenden
-
JwtToken erstellen
-
Authentication mit Microsoft Identity Platform via Entra (ehem. Azure AD)
- OData Abfragen auf VehicleManagement
- LAB: OData Abfragen auf Northwind
- Logging in ASP.Net Core
- Serilog, FileSink, OpenTelemetry
- OpenTelemetry und datalust/seq
- Paging
- Cookie Handling
- Deployment
docker build -f ./<projectfolder>/Dockerfile -t meine-webapi .
docker run -d -p 8080:80 --name webapi-container meine-webapi