Optional: Einführung in die notwendigen Grundlagen von HTTP, HTTPS/SSL/TLS
Basiswissen
- Was sind HTTP-Services?
- Was ist REST?
- Was sind Microservices?
- Unterschiede zwischen REST und SOAP
- SOA versus Microservices
ASP.NET Core WebAPI im Überblick
- Vergleich mit der Windows Communication Foundation (WCF), CoreWCF und gRPC
- Optional: Unterschiede zwischen klassischem WebAPI in ASP.NET und ASP.NET Core WebAPI
Startcode einer ASP.NET Core-Anwendung
- Konzept der Middleware-Komponenten
- Verschiedene Middleware-Komponenten verwenden
- Minimal API (seit .NET 6.0) vs. tradionelles/vollständiges Controller-basiertes API (seit .NET Core 1.0)
Erstellen von REST-Services mit Web-API
- Datenformate
- Parameterübergabe/Parameterbindung
- Formulardaten übergeben
- Model Validation
- Benutzerdefinierte serverseitige Validatoren
- Routing
- Kontrolle über HTTP-Nachrichten / Einsatz von Statuscodes
- Hilfeseiten
- Konfigurieren der Anwendung
WebAPIs testen
- Testen im Browser
- Testen mit Werkzeugen wie Postman und Fiddler
Architektur
- Inversion Of Control durch Dependency Injection
- Repository Pattern
- Kapselung von Business-Logik in wiederverwendbare Module
Metadaten und Dokumentation
- Open API Specification ("Swagger"): Metadaten, Hilfeseiten, Testclients
- Nswag und Swashbuckle
- Einsatz von Datenannotationen
- Client-Generierung mit NSwagStudio und Kommandozeilentools (aus JSON und Assembly, für .NET und TypeScript)
Web-APIs aufrufen in .NET-Anwendungen mit der HttpClient-Bibliothek
- Nuget-Pakete Microsoft.Net.Http, Microsoft.AspNet.WebApi.Client
- unterstützte Betriebssysteme / Plattformen
- Aufrufe mit GET, POST, PUT, DELETE u.a.
- Statuscodes
- Komplexe Typen
- Objekte serialisieren/deserialisieren
- Formate/Encoding (JSON, XML)
- Header festlegen
- Eigene HttpClient Message Handlers
Web-APIs aufrufen im Browser
- Mit JavaScript-Frameworks wie z.B. jQuery, Axios, Angular, Vue.js und React (wahlweise auch andere JavaScript-Bibliotheken)
- Mit ASP.NET Core Blazor
- Same Origin Policy und CORS
Aufbauwissen
- Ablaufverfolgung (Tracing)
- Cookies in WebAPIs
- File Upload / Multipart MIME
- Versionierung von REST-Diensten
- Web-API erweitern
- Entwickeln eigener Middleware-Komponenten
- Native-AOT mit Minimal WebAPIs (ab .NET 8.0)
Hosting von REST-Services mit ASP.NET Web API (Platformen nach Wahl des Kunden)
- In ASP.NET Core intergrierter Webserver Kestrel
- Platformen für das Hosting: Windows, Linux, macOS
- Webserver Internet Information Services (IIS) unter Windows
- Webserver Nginx und/oder Apache unter Linux (oder Windows)
- Hosting in Docker-Containern
Sicherheit mit ASP.NET Core WebAPIs
- SSL
- ASP.NET Core Identity
- HTTP-Authentifizierung
- Windows-Authentifizierung
- Open-Authorization (Oauth) / OpenID Connect (OIDC)
- Richtlinienbasierte Autorisierung via Policy
- Benutzerdefinierte Authentifizierungsarten
Profiwissen
- Monitoring/Telemetrie
- Skalierbarkeit
- Hochverfügbarkeit
Optionale Themen:
- Azure API Management
- GraphQL
- Open Data Protocol (ODATA)
- gRPC ("Google RPC") als Alternative inkl. Brücke zwischen gRPC und REST
- CoreWCF
- Besprechung verschiedener Middleware-Komponenten nach Wahl