Ein einfaches ASP.NET Core Web API Projekt zum Verwalten von BΓΌchern β mit dem Hauptfokus auf dem VerstΓ€ndnis und der Anwendung von C#-Attributen.
Dieses Projekt dient Lernzwecken. Es zeigt, wie man:
- eigene Attribute in C# erstellt (z.β―B.
CustomRoleAttribute
) - Filter wie
ActionFilter
undAuthorizationFilter
verwendet - JWT-Authentifizierung integriert
- Attribute sinnvoll in einem ASP.NET Core Controller nutzt
- π CRUD-API fΓΌr BΓΌcher (
BooksController
) - π Login via
AccountController
mit JWT Token - π‘οΈ Benutzerdefinierte Rollen-Absicherung mit dem
[CustomRole("Admin")]
-Attribut - π§ͺ Action Logging mit
[LogActionFilter]
- π§Ύ OpenAPI (Swagger) Dokumentation
Thema | Beschreibung |
---|---|
CustomRoleAttribute |
PrΓΌft, ob ein Benutzer eine bestimmte Rolle besitzt |
LogActionFilter |
Ein ActionFilter, der alle Requests in der Konsole loggt |
Authorize , AllowAnonymous |
Standard-Attribute von ASP.NET zur Zugriffskontrolle |
Swagger Support | Erlaubt das Testen geschΓΌtzter Endpunkte durch manuelles EinfΓΌgen des Tokens |
BookStoreProject/
β
βββ BookStoreApi/ β Haupt-API-Projekt
β βββ Controllers/ β API-Controller fΓΌr BΓΌcher und Kategorien
β βββ Models/ β EntitΓ€ten und DTOs
β βββ Attributes/ β Eigene C#-Attribute
β βββ Filters/ β Action- und Authorization-Filter
β βββ Middleware/ β Middleware-Komponenten
β βββ Program.cs β Einstiegspunkt
β βββ appsettings.json β Konfiguration
β
βββ BookStoreApiTests/ β Testprojekt
βββ Integrationstests
POST /api/account/login
{
"email": "[email protected]",
"password": "password"
}
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6..."
}
β‘οΈ Kopiere den Token und klicke in Swagger auf "Authorize" β fΓΌge den Token mit Bearer
PrΓ€fix ein.
docker build -t bookstoreapi .
docker run -p 8080:8080 bookstoreapi
- .NET 8 SDK
- JetBrains Rider oder Visual Studio
- Optional: Docker