Nestgrid.Response.Http
0.8.0
dotnet add package Nestgrid.Response.Http --version 0.8.0
NuGet\Install-Package Nestgrid.Response.Http -Version 0.8.0
<PackageReference Include="Nestgrid.Response.Http" Version="0.8.0" />
<PackageVersion Include="Nestgrid.Response.Http" Version="0.8.0" />
<PackageReference Include="Nestgrid.Response.Http" />
paket add Nestgrid.Response.Http --version 0.8.0
#r "nuget: Nestgrid.Response.Http, 0.8.0"
#:package Nestgrid.Response.Http@0.8.0
#addin nuget:?package=Nestgrid.Response.Http&version=0.8.0
#tool nuget:?package=Nestgrid.Response.Http&version=0.8.0
Nestgrid.Response.Http
Shared HTTP response mapping policy for Nestgrid.Response adapters.
Nestgrid.Response.Http maps result statuses to HTTP status codes and selects response payloads. It does not execute responses and does not depend on ASP.NET Core MVC packages.
Installation
dotnet add package Nestgrid.Response.Http
Most applications should install an adapter package instead:
dotnet add package Nestgrid.Response.AspNetCore
or:
dotnet add package Nestgrid.Response.Mvc
Quick Start
using Nestgrid.Response;
using Nestgrid.Response.Http.Mappings;
using Nestgrid.Response.Http.Options;
var options = new NestgridResponseOptions
{
SuccessResponseMode = SuccessResponseMode.ValueOnly
};
HttpResultMapping mapping = HttpResultMapper.Map(
Results.NotFound<UserDto>("User was not found."),
options,
hasValue: false,
value: null);
Realistic Example
Use this package directly when you are building a custom adapter around the core result model:
using Nestgrid.Response;
using Nestgrid.Response.Http.Mappings;
using Nestgrid.Response.Http.Options;
public static CustomResponse ToCustomResponse<T>(
Result<T> result,
NestgridResponseOptions options)
{
var mapping = HttpResultMapper.Map(
result,
options,
hasValue: true,
value: result.Value);
return new CustomResponse(
statusCode: mapping.StatusCode,
body: mapping.Body);
}
Application developers usually use ToIResult() or ToActionResult() from an adapter package instead of calling HttpResultMapper directly.
Feature Summary
- Default mapping from every
ResultStatusto an HTTP status code. - Configurable status mappings through
NestgridResponseOptions. FullResultandValueOnlysuccess payload modes.- Consistent failure payload behavior.
- Bodyless handling for
ResultStatus.NoContent. - Shared policy used by ASP.NET Core and MVC adapters.
Default Status Mappings
| Result status | HTTP status |
|---|---|
Ok |
200 |
Created |
201 |
Accepted |
202 |
NoContent |
204 |
Invalid |
400 |
Unauthorized |
401 |
Forbidden |
403 |
NotFound |
404 |
Conflict |
409 |
Cancelled |
409 |
Failed |
422 |
Error |
500 |
If a mapping is removed from an options instance, the mapper falls back to the default mapping.
Custom mappings are an intentional consumer capability. Treat the default mappings for Unauthorized, Forbidden, Error and NoContent as normative unless there is a reviewed integration reason to change them. Remapping these outcomes can alter authentication, authorisation, caching and client-control semantics.
Payload Modes
FullResult writes the result envelope.
ValueOnly writes only the value for successful generic results.
Failures always write the result envelope. NoContent never writes a response body.
Documentation
Samples
| 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Nestgrid.Response (>= 0.8.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Nestgrid.Response.Http:
| Package | Downloads |
|---|---|
|
Nestgrid.Response.AspNetCore
ASP.NET Core integration for Nestgrid.Response, providing IResult and ActionResult adapters for Minimal APIs and MVC controllers. |
|
|
Nestgrid.Response.Mvc
MVC integration for Nestgrid.Response, providing ActionResult adapters backed by shared HTTP mapping. |
GitHub repositories
This package is not used by any popular GitHub repositories.