Mediarq.AspNetCore 1.5.1

dotnet add package Mediarq.AspNetCore --version 1.5.1
                    
NuGet\Install-Package Mediarq.AspNetCore -Version 1.5.1
                    
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="Mediarq.AspNetCore" Version="1.5.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mediarq.AspNetCore" Version="1.5.1" />
                    
Directory.Packages.props
<PackageReference Include="Mediarq.AspNetCore" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mediarq.AspNetCore --version 1.5.1
                    
#r "nuget: Mediarq.AspNetCore, 1.5.1"
                    
#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.
#:package Mediarq.AspNetCore@1.5.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mediarq.AspNetCore&version=1.5.1
                    
Install as a Cake Addin
#tool nuget:?package=Mediarq.AspNetCore&version=1.5.1
                    
Install as a Cake Tool

Mediarq.AspNetCore

Map a Mediarq Result / Result<T> straight to an ASP.NET Core response — 200/Ok on success, or RFC 7807 ProblemDetails on failure with a status derived from the ResultError category.

dotnet add package Mediarq.AspNetCore

Usage

No registration needed — just call the extension methods on the Result returned by Send.

Minimal API:

app.MapPost("/orders", (CreateOrder cmd, ISender sender) => sender.Send(cmd).ToHttpResultAsync());
app.MapGet("/orders/{id:guid}", (Guid id, ISender sender) => sender.Send(new GetOrder(id)).ToHttpResultAsync());

MVC controller:

[HttpPost]
public Task<IActionResult> Create(CreateOrder cmd) => mediator.Send(cmd).ToActionResultAsync();

Status mapping: NotFound → 404, Validation → 400, Conflict → 409, Unauthorized → 401, Forbidden → 403, otherwise 400/500 as appropriate. A validation failure renders the property errors as a ProblemDetails errors dictionary.

Automatic endpoint mapping — app.MapMediarq()

Skip the pass-through endpoint entirely: annotate the command/query itself, and map every annotated type in one call.

[MediarqPost("/orders")]
public record CreateOrder(string Customer) : ICommand<Result<Guid>>;

[MediarqGet("/orders/{id}")]
public record GetOrder(Guid Id) : IQuery<Result<OrderDto>>;

[MediarqDelete("/orders/{id}")]
public record DeleteOrder(Guid Id) : ICommand; // no result -> 204 on success
app.MapMediarq(typeof(CreateOrder).Assembly);
  • [MediarqGet]/[MediarqDelete] — no request body; the request's members are bound individually from the route/query string ([AsParameters]), so GetOrder(Guid Id) above binds Id from {id}.
  • [MediarqPost]/[MediarqPut]/[MediarqPatch] — the whole request is bound from the JSON body.
  • The response is converted the same way ToHttpResultAsync() does above; a no-result ICommand maps a successful dispatch to 204 No Content. Any other response type throws InvalidOperationException at startup — annotating a type that isn't Result/Result<T>/a no-result ICommand is a configuration mistake, not something to fail silently on.
  • Returns a RouteGroupBuilder, so shared conventions apply to every mapped endpoint at once: app.MapMediarq(...).RequireAuthorization().WithTags("orders");.

Learn more

MIT © Nicolas Rouffart

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

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Mediarq.AspNetCore:

Package Downloads
Mediarq

Lean meta-package bundling Mediarq.Core and the lightweight extensions: ASP.NET Core, FluentValidation, DataAnnotations, Caching, Diagnostics and UnitOfWork. Heavy or opinionated integrations (EntityFrameworkCore, OpenTelemetry, MassTransit, Polly) ship as separate packages — install them explicitly when you need them.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.5.1 173 7/26/2026
1.5.0 131 7/26/2026
1.4.0 211 7/24/2026
1.3.0 231 7/24/2026
1.2.0 132 7/24/2026
1.1.0 128 7/24/2026
1.0.0 243 6/27/2026