TechHive Solutions User Management API (Minimal)
This project is a User Management API built with ASP.NET Core Minimal API for TechHive Solutions. It enables TechHive's HR and IT departments to create, update, retrieve, and delete user records efficiently.
This API was developed as a three-part final project for the "Back-End Development with .NET" course with a focus on leveraging Microsoft Copilot for code generation, enhancement, and debugging. The project requirements can be viewed here.
The GitHub repository for this project can be found here.
An alternative implementation to this API was developed using a Controller API approach. This version was developed to explore the differences between Minimal APIs and Controller-based APIs in ASP.NET Core. The GitHub repository for the Controller API version can be found here.
Regarding how Copilot was used in this project's development process, transcriptions of the prompts that were used and the conversations that occurred were captured and saved in text files. These files can be found in the /wwwroot/docs folder in the project's Github repository.
Key Features
- CRUD operations for user management
- In-memory user store with test users
- Input validation and robust error handling
- Custom middleware: error handling, authentication, logging
- Swagger/OpenAPI documentation
- JWT Bearer token authentication
Testing with Swagger UI
To test the API endpoints, you can use the Swagger UI interface that is automatically generated for the API. However, an authorization token will be required to access the endpoints. To send the authorization token in Swagger UI, follow these steps:
- Click here to open Swagger UI in a new page (usually at /swagger or /swagger/index.html).
- Click the "Authorize" button (often a lock icon at the top right).
- In the value field, enter: your-secret-token
- Click "Authorize" and then "Close".
Other tools like Postman can also be used to test the API endpoints by including the authorization token in the headers. Please see the Testing section in the README.md file for more details.
Resetting the List of Users (user store)
The API exposes an POST endpoint (/users/reset) to reset the user store to its initial state. You can use the Swagger UI interface that is automatically generated for the API to call this endpoint if a reset of the user store is needed.