Dabei handelt es sich um ein einfaches, vorkonfiguriertes ASP.NET Core-Projekt, das übernommen werden soll und darauf abzielt, Ihnen einen Vorsprung beim Erstellen erholsamer APIs auf der Grundlage der dreistufigen Architektur zu verschaffen.
Um einige seiner Funktionen zu demonstrieren, enthält dieses Projekt eine minimalistische und fiktive Implementierung einer Projektmanagementanwendung namens Plantagoo.
Ich persönlich habe in den letzten Monaten wiederholt ASP.NET Core-API-Projekte von Grund auf erstellt. Obwohl sich die Technologie bekanntermaßen schnell verändert und verbessert, verspürte ich das Bedürfnis, dieses Projekt zu erstellen und zu veröffentlichen, um es in Zukunft teilen, referenzieren und darauf aufbauen zu können.
Dreischichtige Architektur mit Klassenbibliotheken pro Schicht
DI-basierte, asynchrone Dienste, die ein generisches Antwortobjekt zurückgeben
JWT-basierte Authentifizierung und Autorisierung
PBKDF2-basiertes Hashing
Middleware-basierte globale Fehlerbehandlung
Restful API-Endpunkte, die DTOs und HTTP-Statuscodes zurückgeben
Implementierung von Filterung, Paging und Sortierung für den API-Endpunkt, der Objektlisten zurückgibt
Implementierung der API-Endpunktversionierung
Entity Framework Core-basierter Datenzugriff über POCO-Entitäten
AutoMapper-basierte Objekt-zu-Objekt-Zuordnung und Optimierung von Datenbankabfragen
Sicherheitsorientierte Konfigurierbarkeit von Datenbankverbindungsstrings und JWT-Parametern über umgebungsbasierte „appsettings.json“-Dateien, Secrets und/oder Umgebungsvariablen
xUnit-basierter Integrationstest, einschließlich Einrichtung, Seeding und Abbau einer dedizierten Datenbank
Um dieses Projekt so zum Laufen zu bringen, wie es ist, können Sie die folgenden Schritte ausführen:
.NET Core 3.1+ SDK
IDE (vorzugsweise Visual Studio oder Visual Studio Code)
MySQL Server 8.0.20+
Klonen Sie dieses Repository
Stellen Sie im Stammverzeichnis die erforderlichen Pakete wieder her, indem Sie Folgendes ausführen:
dotnet restore
Öffnen Sie appsettings.{environment}.json Dateien im Plantagoo.API-Projekt, um die folgende Verbindungszeichenfolge an Ihre Bedürfnisse anzupassen (Anmeldeinformationen finden Sie in Schritt 7):
server=localhost;Port=3306;database=apiSkeletonDb
Aktivieren Sie für Entwicklungszwecke die geheime Speicherung, indem Sie Folgendes ausführen (Wenn Sie es gewohnt sind, mit Umgebungsvariablen zu arbeiten, fahren Sie schnell mit Schritt 7 fort):
dotnet user-secrets init
Wenn Sie Windows verwenden, gehen Sie zur Datei %APPDATA%MicrosoftUserSecrets<user_secrets_id>secrets.json und öffnen Sie sie.
Wenn Sie Linux/macOS verwenden, gehen Sie zur Datei ~/.microsoft/usersecrets/<user_secrets_id>/secrets.json und öffnen Sie sie.
Fügen Sie in dieser Datei „secrets.json“ die folgenden Zeilen hinzu, um Ihre JWT-Parameter festzulegen und Ihre Datenbankverbindungszeichenfolge durch Hinzufügen von Benutzernamen und Passwort zu erweitern:
"TokenSettings:Secret": "…", "TokenSettings:AccessExpirationInMinutes": "…", "DB:Username": "…", "DB:Password": "…"
Für einen Code-First-Ansatz zum Erstellen der Datenbank führen Sie den folgenden Befehl aus (stellen Sie sicher, dass Ihr aktuelles Verzeichnis Plantagoo.Data ist):
dotnet ef migrations add InitialCreate
Gefolgt von:
dotnet ef database update
Erstellen Sie als Nächstes die Lösung, indem Sie Folgendes ausführen:
dotnet build
Wenn Sie fertig sind, starten Sie die Anwendung, indem Sie Folgendes ausführen:
dotnet run
Starten Sie https://localhost:5001/swagger/index.html in Ihrem Browser, um die Swagger-Dokumentation Ihrer API anzuzeigen
.NET Core 3.1
ASP.NET Core 3.1
Entity Framework Core 3.1
AutoMapper
Verwegenheit
xUnit