A RESTful Web API built with ASP.NET Core for managing books and their categories. It supports full CRUD operations, pagination, filtering, sorting, and HATEOAS, with JWT-based authentication and role-based authorization.
Implemented using NLog for detailed, configurable logging.
Centralized exception management through a custom middleware ExceptionMiddlewareExtension, with dedicated exception classes per entity.
Uses AutoMapper to simplify the mapping between models and DTOs.
Supports multiple response formats: JSON, XML, and CSV.
Input validation handled via Action Filters to keep controllers clean.
Fully asynchronous programming model for improved scalability and performance.
Includes metadata such as total items, page size, and current page in responses.
Adds navigational links to enhance discoverability and self-documentation of the API.
Provides clients with supported HTTP methods and resource availability.
Root-level route offering API metadata and entry points.
Enables multiple versions of the API to coexist seamlessly.
Response caching is implemented to optimize performance and reduce server load.
Limits the number of requests per client to prevent abuse and ensure fair usage.
-
π€ Based on ASP.NET Identity
-
π§Ύ JWT-based tokens with Refresh Token support
-
π‘οΈ Role-based access control
Fully integrated with Swagger (OpenAPI) for live API testing and exploration.
Includes a ready-to-use Postman collection for easy testing of all endpoints.
Supports uploading and downloading files via dedicated endpoints.
- π§± ASP.NET Core Web API
- ποΈ Entity Framework Core
- π’οΈ SQL Server
- π AutoMapper
- π Swagger
- π§ͺ Postman (for testing)
- π Proxies
- π¦ ASP.NET CORE Rate Limit
- π§ Marvin.Cache.Headers
- βοΈ JsonPatch -π§Ύ NewtonsoftJson