Pandatech.ResponseCrafter
1.4.10
See the version list below for details.
dotnet add package Pandatech.ResponseCrafter --version 1.4.10
NuGet\Install-Package Pandatech.ResponseCrafter -Version 1.4.10
<PackageReference Include="Pandatech.ResponseCrafter" Version="1.4.10" />
paket add Pandatech.ResponseCrafter --version 1.4.10
#r "nuget: Pandatech.ResponseCrafter, 1.4.10"
// Install Pandatech.ResponseCrafter as a Cake Addin #addin nuget:?package=Pandatech.ResponseCrafter&version=1.4.10 // Install Pandatech.ResponseCrafter as a Cake Tool #tool nuget:?package=Pandatech.ResponseCrafter&version=1.4.10
Pandatech.ResponseCrafter
Introduction
ResponseCrafter is a comprehensive NuGet package for .NET 8+, specifically designed for enhanced exception handling and logging in ASP.NET applications. This package simplifies the process of handling standard and custom exceptions by crafting detailed error responses suitable for both development and production environments.
Features
- Custom Exception Handling: Streamlines the process of managing both standard HTTP exceptions and custom exceptions.
- Detailed Error Responses: Generates verbose error messages, including stack traces for in-depth debugging in development environments.
- Environment-Sensitive Logging: Offers a class
PandaExceptionHandler
which can be configured for message verbosity. In production environments, only the exception type and message are logged. In development environments, the entire exception is logged, including the stack trace. - Frontend-Friendly Error Messages: Encourages the use of snake_case in error messages, facilitating easier integration with frontend localization systems.
- Organized/Readable and standardized error responses: Provides a standardized error response format for all exceptions, making it easier for frontend applications to parse and display error messages. The error response format is shown below:
{
"TraceId": "0HMVFE0A284AM:00000001",
"Instance": "POST - 164.54.144.23:443/users/register",
"StatusCode": 400,
"Type": "BadRequestException",
"Errors": {
"email": "email_address_is_not_in_a_valid_format",
"password": "password_must_be_at_least_8_characters_long"
},
"Message": "the_request_was_invalid_or_cannot_be_otherwise_served."
}
Installation
Install the package via NuGet Package Manager or use the following command:
Install-Package ResponseCrafter
Usage
1. Setup Exception Handlers:
Add AddResponseCrafter
in program.cs and in configuration set "ResponseCrafterVisibility"
to "Public"
or "Private"
.
builder.AddResponseCrafter();
{
"ResponseCrafterVisibility": "Public"
}
2. Define Custom Exceptions:
Create a custom exception class that inherits from
ApiException
or use already created ones:Utilize
ErrorDetails
records for specific error messages related to API requests.
3. Configure Middleware:
- Implement the exception handling middleware in your application's pipeline.
app.UseResponseCrafter();
4. Logging and Error Responses:
- Automatically logs warnings or errors and provides crafted responses base on the exception type.
Custom Exception Already Created
BadRequestException
UnauthorizedException
PaymentRequiredException
ForbiddenException
NotFoundException
ConflictException
TooManyRequestsException
InternalServerErrorException
ServiceUnavailableException
Recommendations
- Error Message Formatting: It's recommended to use snake_case for error messages to aid frontend applications in implementing localization.
Limitations
- This package is specifically tailored for .NET 8 and above.
License
Pandatech.ResponseCrafter is licensed under the MIT License.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Microsoft.AspNetCore.OpenApi (>= 8.0.3)
- Pandatech.EFCoreQueryMagic (>= 1.0.9)
- PandaTech.FluentImporter (>= 2.0.6)
- PandaTech.ServiceResponse (>= 1.2.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
4.0.1 | 83 | 11/11/2024 |
4.0.0 | 92 | 10/4/2024 |
3.0.1 | 125 | 9/11/2024 |
3.0.0 | 106 | 7/18/2024 |
2.2.2 | 112 | 6/29/2024 |
2.2.1 | 111 | 6/29/2024 |
2.2.0 | 114 | 6/27/2024 |
2.1.4 | 114 | 6/27/2024 |
2.1.3 | 145 | 6/22/2024 |
2.1.2 | 90 | 6/22/2024 |
2.1.1 | 96 | 6/22/2024 |
2.1.0 | 96 | 6/22/2024 |
2.0.0 | 107 | 6/13/2024 |
1.7.0 | 90 | 6/13/2024 |
1.6.3 | 98 | 6/9/2024 |
1.6.2 | 104 | 6/6/2024 |
1.6.1 | 122 | 6/2/2024 |
1.5.1 | 112 | 5/28/2024 |
1.5.0 | 111 | 5/26/2024 |
1.4.14 | 115 | 5/24/2024 |
1.4.13 | 97 | 5/24/2024 |
1.4.12 | 108 | 5/17/2024 |
1.4.10 | 122 | 5/8/2024 |
1.4.9 | 129 | 5/7/2024 |
1.4.8 | 108 | 5/6/2024 |
1.4.7 | 120 | 5/5/2024 |
1.4.6 | 81 | 5/3/2024 |
1.4.5 | 118 | 4/24/2024 |
1.4.4 | 113 | 4/24/2024 |
1.4.3 | 109 | 4/24/2024 |
1.4.2 | 107 | 4/23/2024 |
1.4.1 | 128 | 4/16/2024 |
1.4.0 | 119 | 4/16/2024 |
1.3.0 | 108 | 4/16/2024 |
1.2.1 | 140 | 4/3/2024 |
1.2.0 | 144 | 4/2/2024 |
1.1.0 | 171 | 3/22/2024 |
1.0.4 | 318 | 12/14/2023 |
1.0.3 | 153 | 11/29/2023 |
1.0.2 | 143 | 11/29/2023 |
1.0.1 | 133 | 11/28/2023 |
1.0.0 | 150 | 11/28/2023 |
Logging polish