TriggerExceptionHandler 3.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package TriggerExceptionHandler --version 3.0.0
NuGet\Install-Package TriggerExceptionHandler -Version 3.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TriggerExceptionHandler" Version="3.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TriggerExceptionHandler --version 3.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TriggerExceptionHandler, 3.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TriggerExceptionHandler as a Cake Addin
#addin nuget:?package=TriggerExceptionHandler&version=3.0.0
// Install TriggerExceptionHandler as a Cake Tool
#tool nuget:?package=TriggerExceptionHandler&version=3.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
TriggerExceptionHandler
Super easy ASP.NET Core Exception Handler + ModelState validator for Web API services.
- ASP.NET Core 3.0 ready
- Easy to use (just few rows)
- Standard models
- Based on
System.Text.Json
ModelState.IsValid
to attribute:[ValidateModelStateAttribute]
- Thanks to StrathWeb for the base pattern
Nuget package installation
Install-Package TriggerExceptionHandler
dotnet add package TriggerExceptionHandler
Some exceptions returns different HttpStatusCode
:
UnauthorizedAccessException
:Unauthorized (401)
KeyNotFoundException
:NotFound (404)
Default is 500
.
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// services.AddMvc(); (you can still use AddMvc)
// Please see: https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-core-3-0-preview-4/
services.AddControllers();
services.TriggerInvalidModelStateResponse();
}
What's in AddControllers()
AddControllers() includes support for:
- Controllers
- Model Binding
- API Explorer (OpenAPI integration)
- Authorization [Authorize]
- CORS [EnableCors]
- Data Annotations validation [Required]
- Formatter Mappings (translate a file-extension to a content-type)
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// custom http status codes
// app.UseTriggerExceptionHandler(env.ApplicationName, exceptionsCode: new Ext2HttpCode { { typeof(ArgumentException), HttpStatusCode.Ambiguous } });
app.UseTriggerExceptionHandler(env.ApplicationName);
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Example responses
Exception Model
{
"type": "ExpectedException",
"title": "Youre exception message",
"status": 500,
"detail": "...stack trace (if debugger is attached)",
"instance": "urn:YourApplicationName:1299978476"
}
ValidateModelStateAttribute
model
{
"errors": {
"Name": ["The Name field is required."]
},
"type": "ValidationProblemDetails",
"title": "Request Validation Error",
"status": 400,
"detail": "One or more validation errors occurred",
"instance": "urn:YourApplicationName:759630415"
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Microsoft.AspNetCore.Diagnostics (>= 2.2.0)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.2.0)
- Microsoft.AspNetCore.Mvc.ViewFeatures (>= 2.2.0)
- System.Text.Json (>= 4.6.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.