Skip to main content
net6.0

A set of extensions and helpers for working with ASP.NET Core Minimal APIs.

Published
Mar 22, 2022
4y ago
Total Downloads
946.6K
946,569

Install

dotnet add package MinimalApis.Extensions --version 0.5.1-pre.20220322.18
ProductVersions
.NET
net6.0

README

MinimalApis.Extensions

A set of extensions and helpers that extend the funcationality of ASP.NET Core Minimal APIs.

Installation

Nuget

This package is currently available in prerelease from nuget.org:

> dotnet add package MinimalApis.Extensions --prerelease

Getting Started

  1. Install the NuGet package into your ASP.NET Core project:
    > dotnet add package MinimalApis.Extensions --prerelease
    
  2. In your project's Program.cs, call the AddEndpointsProvidesMetadataApiExplorer() method on builder.Services to enable enhanced endpoint metadata in ApiExplorer:
    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddEndpointsProvidesMetadataApiExplorer(); // <-- Add this line
    builder.Services.AddSwaggerGen();
    ...
    
  3. Update your Minimal APIs to use the helper binding and result types from this library, e.g.:
    app.MapPost("/todos", async Task<Results<ValidationProblem, Created<Todo>>> (Validated<Todo> input, TodoDb db) =>
    {
        if (!input.IsValid)
            return Results.Extensions.ValidationProblem(input.Errors);
        
        var todo = input.Value;
        db.Todos.Add(todo);
        await db.SaveChangesAsync();
    
        return Results.Extensions.Created($"/todos/{todo.Id}", todo);
    });
    

What's Included?

This library provides types that help extend the core functionality of ASP.NET Core Minimal APIs in the following ways:

  • Enhanced parameter binding
  • Typed IResult objects for easier unit testing (available via Results.Extensions)
  • Automatic population of detailed endpoint descriptions in Swagger/OpenAPI via the ability for input and result types to add to endpoint metadata via IProvideEndpointParameterMetadata and IProvideEndpointResponseMetadata
  • Union IResult return types via Results<TResult1, TResultN> that enable route handler delegates to declare all the possible IResult types they can return, enabling compile-time type checking and automatic population of possible responses in Swagger/OpenAPI

Sample Projects

TodoApis.Dapper

An example Todos application using ASP.NET Core Minimal APIs and the Dapper library for data storage in SQLite.

MinimalApis.Examples

Contains small examples for other types in this library.

MinimalApiPlayground

Shows many examples of using the types in this library along with other things related to ASP.NET Core Minimal APIs.

Changes from Previous Version

No structural changes between v0.5.0-pre.20220321.15 and v0.5.1-pre.20220322.18.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.