Bokaffär API byggd med .NET 9 Minimal API och MongoDB Atlas.
- Bokhantering: CRUD-operationer för böcker med lagerhantering
- Köpfunktionalitet: Köp böcker med automatisk lagervalidering
- Sökfunktion: Sök böcker efter titel eller författarnamn
- Författare & Kategorier: Hantera författare och bokkategorier
- API Key Authentication: Säker åtkomst med API-nyckel
- Swagger UI: Interaktiv API-dokumentation
- .NET 9.0 - ASP.NET Core Minimal API
- MongoDB Atlas - Cloud database
- Swashbuckle - OpenAPI/Swagger dokumentation
- xUnit - Enhetstester
- FluentAssertions - Test assertions
- Coverlet - Code coverage
- .NET 9 SDK
- MongoDB Atlas konto (eller lokal MongoDB)
- Klona repot:
git clone https://github.com/KennySohl/DeviesReadsAPI.git
cd DeviesReadsAPI- Konfigurera API-nyckel och MongoDB connection string i
appsettings.Development.json:
{
"ApiKey": "DIN_API_NYCKEL",
"BookstoreDatabase": {
"ConnectionString": "mongodb+srv://..."
}
}- Kör projektet:
dotnet run- Öppna Swagger UI:
http://localhost:5161/swagger
GET /api/books- Hämta alla böckerGET /api/books/{id}- Hämta specifik bokGET /api/books?searchTerm={term}- Sök böckerPOST /api/books- Skapa ny bokPUT /api/books/{id}- Uppdatera bokDELETE /api/books/{id}- Ta bort bokPOST /api/books/{id}/purchase- Köp bok
GET /api/authors- Hämta alla författareGET /api/authors/{id}- Hämta specifik författarePOST /api/authors- Skapa ny författare
GET /api/categories- Hämta alla kategorierGET /api/categories/{id}- Hämta specifik kategoriPOST /api/categories- Skapa ny kategori
Alla endpoints (utom Swagger) kräver en API-nyckel i headern:
X-API-Key: DIN_API_NYCKEL
I Swagger UI: Klicka på "Authorize" och ange din API-nyckel.
cd DeviesReadsAPI.Tests
dotnet testcd DeviesReadsAPI.Tests
.\run-coverage.ps1Detta kommer att:
- Köra alla tester med coverage-analys
- Generera en HTML-rapport
- Öppna rapporten i din webbläsare
Testtäckning: 16 integrationstester som täcker alla endpoints, API key authentication, och köplogik.
DeviesReadsAPI/
├── Models/ # Datamodeller (Book, Author, Category)
├── Services/ # Business logic (BookService)
├── Middleware/ # API Key authentication
├── Program.cs # API endpoints och konfiguration
└── appsettings.json # Konfiguration
DeviesReadsAPI.Tests/
├── BookApiTests.cs # Tester för book endpoints
├── AuthorApiTests.cs # Tester för author endpoints
├── CategoryApiTests.cs # Tester för category endpoints
└── run-coverage.ps1 # Coverage script
MIT License