Eine produktive ASP .NET -Minimal -API -Vorlage
Dies ist ein Vorlagen -Repository, das zeigt, wie man eine saubere API mit ASP.NET unter Verwendung von minimalen APIs implementieren kann. Der Fokus auf „Merkmale“ in dieser Vorlage liegt auf der Produktivität von Entwickler. Die tatsächlichen Merkmale der API selbst wurden absichtlich grundlegend gehalten. Sie können dieses Repository kopieren oder Teile davon wiederverwenden. Vergessen Sie nicht, einen Stern zu geben, wenn Sie dies tun.
Einige Funktionen in dieser Vorlage:
- Vertikale Scheibenarchitektur (Gruppierung basierend auf Merkmalen anstelle von technischen Schichten)
- Ein einfach zu bedienender und schneller Durchführung von Integrationstests, die in Sekundenschnelle ausgeführt werden, wobei die einzige Abhängigkeit mit der Verwendung von testExamplesDotnet Docker ist
- Authentifizierung und Autorisierung mit JWT -Token. Dies wird auch von den Tests verwendet, sodass Sie prüfen können, ob Ihre Authentifizierung und Autorisierung in den Tests ordnungsgemäß funktioniert.
- Bereit für Opentelemetrie
- Startprofil für Dotnet Watch
- Automatisierte Build mit GitHub -Aktionen, mit denen die Code -Formatierung überprüft wird, erstellt und führt die Tests aus.
Auslauftests
Nur Docker ist erforderlich, um die Tests auszuführen (Tipp: Podman ist frei zu verwenden). Der erste Lauf kann etwas länger dauern, da das Docker -Bild heruntergeladen wird. Führen Sie den folgenden Befehl aus, um die Tests auszuführen:
Ausführen der App
- Generieren Sie zuerst eine JWT, die Sie für lokale Tests verwenden können:
dotnet user-jwts create --role " read " --role " write "
HINWEIS: Die Endpunkte für Jobs und Abteilung erfordern nur eine Authentifizierung, aber die Mitarbeiterendpunkte erfordern, dass Sie die richtigen Ansprüche im JWT -Token haben.
- Führen Sie die Datenbank mit der bereitgestellten Docker-Compose.yaml aus. Führen Sie optional auch das Aspire -Dashboard in der Datei komponieren, um die Opentelemetrieausgabe problemlos anzuzeigen.
- Führen Sie die App aus. Sie können die Endpunkte mit Swagger unter
https://localhost:7162/swagger erkunden.