TinyHelpers.AspNetCore 4.0.6

dotnet add package TinyHelpers.AspNetCore --version 4.0.6                
NuGet\Install-Package TinyHelpers.AspNetCore -Version 4.0.6                
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="TinyHelpers.AspNetCore" Version="4.0.6" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TinyHelpers.AspNetCore --version 4.0.6                
#r "nuget: TinyHelpers.AspNetCore, 4.0.6"                
#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 TinyHelpers.AspNetCore as a Cake Addin
#addin nuget:?package=TinyHelpers.AspNetCore&version=4.0.6

// Install TinyHelpers.AspNetCore as a Cake Tool
#tool nuget:?package=TinyHelpers.AspNetCore&version=4.0.6                

Tiny Helpers for ASP.NET Core

Lint Code Base CodeQL NuGet Nuget License: MIT

A collection of helper methods and classes for ASP.NET Core that I use every day. I have packed them in a single library to avoid code duplication.

[!IMPORTANT] Update from Version 3.x to 4.x Swashbuckle (Swagger) support has been moved out from TinyHelpers.AspNetCore. If you're using extension methods like AddAcceptLanguageHeader and AddDefaultResponse with AddSwaggerGen, now you need to install the TinyHelpers.AspNetCore.Swashbuckle package.

Installation

The library is available on NuGet. Just search for TinyHelpers.AspNetCore in the Package Manager GUI or run the following command in the .NET CLI:

dotnet add package TinyHelpers.AspNetCore

Usage

The library provides some useful extension methods for ASP.NET Core applications:

  • AddDefaultProblemDetails: calls the default ProblemDetails extension method defining the CustomizeProblemDetails property to ensure that all the typical properties (Type, Title, Instance, TraceId) are correctly set.

  • AddDefaultExceptionHandler: adds a default implementation for the IExceptionHandler interface that returns the following response on exceptions:

app.MapPost("/api/exception", () =>
{
    throw new Exception("This is an exception", innerException: new HttpRequestException("This is an inner exception"));
});
{
  "type": "https://tools.ietf.org/html/rfc9110#section-15.6.1",
  "title": "System.Exception",
  "status": 500,
  "detail": "This is an exception",
  "instance": "/api/exception",
  "traceId": "00-1bffa22c7288e5784bf763d5fd05bc87-87da01a1b76d1692-00",
  "innerException": "System.Net.Http.HttpRequestException",
  "innerExceptionMessage": "This is an inner exception",
  "stackTrace": "..."
}

Note The StackTrace property is included in the response only if the application is running in the Development environment.

  • AddRequestLocalization(cultures): an overload of the standard AddRequestLocalization extension method that just requires the list of supported cultures and automatically registers the corresponding RequestLocalizationOptions (Note: The first culture in the list is used as the default culture).

  • ConfigureAndGet<TOptions>( ): it allows to register a configuration instance on type TOptions and returns the instance itself. It is useful when you need to configure the options and gets the reference to that instance in the same method, typically at application startup.

  • AddAcceptLanguageHeader(): adds the Accept-Language header to OpenAPI definition:

builder.Services.AddOpenApi(options =>
{
    options.AddAcceptLanguageHeader();
});

Contribute

The project is constantly evolving. Contributions are welcome. Feel free to file issues and pull requests on the repo and we'll address them as we can.

Warning Remember to work on the develop branch, don't use the master branch directly. Create Pull Requests targeting develop.

Product 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.  net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on TinyHelpers.AspNetCore:

Repository Stars
marcominerva/ChatGptNet
A ChatGPT integration library for .NET, supporting both OpenAI and Azure OpenAI Service
Version Downloads Last updated
4.0.6 162 12/11/2024
4.0.5 135 12/4/2024
3.2.3 92 12/2/2024
3.2.2 111 11/22/2024
3.1.19 524 10/15/2024
3.1.17 261 9/30/2024
3.1.16 135 9/26/2024
3.1.15 108 9/24/2024
3.1.9 290 9/2/2024
3.1.8 160 8/1/2024
3.1.6 592 6/19/2024
3.1.4 618 5/14/2024
3.0.6 906 2/15/2024
3.0.5 199 1/31/2024
3.0.4 291 1/8/2024
3.0.2 700 11/15/2023
2.0.24 785 9/4/2023
2.0.23 666 7/11/2023
2.0.22 229 6/20/2023
2.0.20 379 4/13/2023
2.0.19 237 4/10/2023
2.0.17 242 3/27/2023
2.0.12 345 3/1/2023
2.0.10 425 1/11/2023
2.0.9 298 1/9/2023
2.0.3 548 11/30/2022
1.0.32 438 10/31/2022
1.0.26 543 9/21/2022
1.0.7 428 7/25/2022
1.0.6 437 7/6/2022
1.0.5 414 6/30/2022
1.0.4 425 6/21/2022