Tungstun.Cute
1.0.1
dotnet add package Tungstun.Cute --version 1.0.1
NuGet\Install-Package Tungstun.Cute -Version 1.0.1
<PackageReference Include="Tungstun.Cute" Version="1.0.1" />
paket add Tungstun.Cute --version 1.0.1
#r "nuget: Tungstun.Cute, 1.0.1"
// Install Tungstun.Cute as a Cake Addin #addin nuget:?package=Tungstun.Cute&version=1.0.1 // Install Tungstun.Cute as a Cake Tool #tool nuget:?package=Tungstun.Cute&version=1.0.1
Cute
Custom Utility to Throw Exceptions in ASP .NET Core.
Installation
Dotnet CLI
dotnet add package Tungstun.Cute --version 1.0.1
Package Manager
Install-Package Tungstun.Cute -Version 1.0.1
How to use?
First we need to register the middleware in Program.cs
.
// Program.cs
using DotnetCute.Middleware;
app.UseMiddleware<CuteMiddleWare>();
After registering, every (custom) exception that inherits from the ResponseException
class will be caught in the middleware. A custom exception would look like this:
// SampleException.cs
using DotnetCute.Attributes;
using DotnetCute.Exceptions;
// Note that if no HttpResponseCode is specified, status code 400 (BadRequest) is used.
[HttpResponseCode(Code = HttpStatusCode.NotFound)]
public class SampleException : ResponseException
{
public SampleException(string description, params string[] additional)
: base(description, additional) { }
}
A simple response generated by Cute looks like this:
{
"code": "Sample",
"description": "This is a sample!",
"additional": []
}
A decked out response could look like this, depending on the options provided to the middleware.
{
"Status": 404,
"Error": "Sample",
"Description": "This is a sample!",
"Additional": [],
"Timestamp": "2022-09-13T18:10:23.0785319+02:00",
"Path": "/Sample"
}
Options
To spice up the error response we send back to the client, a CuteOptions
object can be passed along with the registering of the middleware like this:
app.UseMiddleware<CuteMiddleWare>(new CuteOptions()
{
ShowStatusCode = true,
ShowTimeStamp = true,
ShowPath = true,
ShowLogs = true,
ShowStacktrace = false,
});
Option | Effect | Type |
---|---|---|
ShowLogs | Logs the exception thrown, in the dotnet runner log. | boolean |
ShowStatusCode | Creates a status field with the HTTP status code. |
boolean |
ShowTimeStamp | Creates a timestamp field with the current date and time. |
boolean |
ShowPath | Creates a path field with the url path that the error was thrown at. |
boolean |
ShowStacktrace | Creates a stacktrace field with the generated stack trace of the exception. |
boolean |
Additionial
The additional can be used to return any additional data to the client. All additionals given in the exception will convert to a list.
You can pass additional string data to the exception by adding it at the end like so:
throw new SampleException("This is the description", someString, anotherString, etc...);
An expession as that will come out like:
{
"code": "Sample",
"description": "This is the description",
"additional": [
"Value of someString",
"another value"
]
}
License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
-
net6.0
- Microsoft.AspNetCore.Http (>= 2.2.0)
- Microsoft.AspNetCore.Http.Abstractions (>= 2.2.0)
- Microsoft.AspNetCore.Http.Extensions (>= 2.2.0)
- Microsoft.AspNetCore.Http.Features (>= 6.0.0-preview.4.21253.5)
- Microsoft.AspNetCore.Mvc (>= 2.2.0)
- Microsoft.EntityFrameworkCore (>= 6.0.8)
- Newtonsoft.Json (>= 13.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- Adds predefined exceptions for all client and server HTTP errors.
- Adds options to the middleware to customize the errors generated by Cute.