MiddleMan.Zero.AspNetCore.Http
1.1.0
See the version list below for details.
dotnet add package MiddleMan.Zero.AspNetCore.Http --version 1.1.0
NuGet\Install-Package MiddleMan.Zero.AspNetCore.Http -Version 1.1.0
<PackageReference Include="MiddleMan.Zero.AspNetCore.Http" Version="1.1.0" />
<PackageVersion Include="MiddleMan.Zero.AspNetCore.Http" Version="1.1.0" />
<PackageReference Include="MiddleMan.Zero.AspNetCore.Http" />
paket add MiddleMan.Zero.AspNetCore.Http --version 1.1.0
#r "nuget: MiddleMan.Zero.AspNetCore.Http, 1.1.0"
#:package MiddleMan.Zero.AspNetCore.Http@1.1.0
#addin nuget:?package=MiddleMan.Zero.AspNetCore.Http&version=1.1.0
#tool nuget:?package=MiddleMan.Zero.AspNetCore.Http&version=1.1.0
MiddleMan.Zero.AspNetCore.Http
ASP.NET Core Minimal API integration for MiddleMan.Zero, providing automatic conversion of Result and Result<TResponse> to IResult.
Features
- Extension Methods: Convert
Resultobjects toIResultfor use in Minimal API endpoints - HTTP Status Code Mapping:
Successful→ 200 OKNotFound→ 404 Not FoundInvalid→ 400 Bad RequestFailure→ 500 Internal Server Error
Installation
Add the package to your ASP.NET Core project:
dotnet add package MiddleMan.Zero.AspNetCore.Http
Usage
Use the ToResult() extension method in your Minimal API endpoints to convert handler results to HTTP responses:
using MiddleMan.Zero.AspNetCore.Http;
app.MapGet("/flavors", async (IHandleAsync<GetFlavorsRequest, Flavor[]> handler) =>
{
var result = await handler.HandleAsync(new GetFlavorsRequest());
return result.ToResult();
});
app.MapPost("/flavors", async (AddFlavorRequest request, IHandleAsync<AddFlavorRequest> handler) =>
{
var result = await handler.HandleAsync(request);
return result.ToResult();
});
You can also define endpoints as static methods for cleaner route registration:
public static class FlavorEndpoints
{
public static async Task<IResult> GetAsync(
[FromServices] IHandleAsync<GetFlavorsRequest, Flavor[]> handler)
{
var request = new GetFlavorsRequest();
var result = await handler.HandleAsync(request);
return result.ToResult();
}
}
// In Program.cs
app.MapGet("/flavors", FlavorEndpoints.GetAsync);
Extension Methods
ToResult()
Converts a Result (no response data) to an IResult:
IResult httpResult = result.ToResult();
ToResult<TResponse>()
Converts a Result<TResponse> to an IResult, including the response data on success:
IResult httpResult = result.ToResult();
HTTP Status Code Mapping
| ResultStatus | HTTP Status Code | Response Body |
|---|---|---|
Successful (no data) |
200 OK | Empty |
Successful (with data) |
200 OK | Response object |
NotFound |
404 Not Found | { messages: [...] } |
Invalid |
400 Bad Request | { messages: [...] } |
Failure |
500 Internal Server Error | Problem details |
Undefined |
500 Internal Server Error | Problem details |
Examples
Successful Response with Data
var flavors = new[] { new Flavor { Name = "Vanilla" } };
var result = new Result<Flavor[]>(flavors, ResultStatus.Successful, []);
// Returns: 200 OK with flavors array in body
Not Found Response
var messages = new[] { new NotFoundMessage { Message = "Flavor not found" } };
var result = new Result<Flavor>(null, ResultStatus.NotFound, messages);
// Returns: 404 Not Found with { messages: [...] }
Validation Error Response
var messages = new[] { new InvalidRequestMessage("Flavor name is required.") };
var result = new Result(ResultStatus.Invalid, messages);
// Returns: 400 Bad Request with { messages: [...] }
Comparison with MiddleMan.Zero.AspNetCore.Mvc
| Feature | Http | Mvc |
|---|---|---|
| Target | Minimal APIs (IResult) |
MVC Controllers (IActionResult) |
| Extension method | ToResult() |
ToActionResult() / ToTypedActionResult() |
| Typed result support | Via Results.Ok(data) |
Via ActionResult<T> |
Use Http for Minimal API endpoints. Use Mvc for traditional MVC controllers.
License
MIT
| Product | Versions 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. |
-
net10.0
- MiddleMan.Zero.Abstractions (>= 1.1.0)
-
net8.0
- MiddleMan.Zero.Abstractions (>= 1.1.0)
-
net9.0
- MiddleMan.Zero.Abstractions (>= 1.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.2 | 233 | 2/28/2026 |
| 1.1.2-rc.1 | 49 | 2/28/2026 |
| 1.1.1 | 157 | 2/18/2026 |
| 1.1.0 | 94 | 2/15/2026 |