MinimalApis.Extensions
0.6.0-pre.20220429.27
See the version list below for details.
dotnet add package MinimalApis.Extensions --version 0.6.0-pre.20220429.27
NuGet\Install-Package MinimalApis.Extensions -Version 0.6.0-pre.20220429.27
<PackageReference Include="MinimalApis.Extensions" Version="0.6.0-pre.20220429.27" />
paket add MinimalApis.Extensions --version 0.6.0-pre.20220429.27
#r "nuget: MinimalApis.Extensions, 0.6.0-pre.20220429.27"
// Install MinimalApis.Extensions as a Cake Addin #addin nuget:?package=MinimalApis.Extensions&version=0.6.0-pre.20220429.27&prerelease // Install MinimalApis.Extensions as a Cake Tool #tool nuget:?package=MinimalApis.Extensions&version=0.6.0-pre.20220429.27&prerelease
MinimalApis.Extensions
A set of extensions and helpers that extend the functionality of ASP.NET Core Minimal APIs.
Installation
Prerelease Builds
This package is currently available in prerelease from nuget.org:
> dotnet add package MinimalApis.Extensions --prerelease
CI Builds
If you wish to use builds from this repo's main
branch you can install them from this repo's package feed.
Create a personal access token for your GitHub account with the
read:packages
scope with your desired expiration length:At the command line, navigate to your user profile directory and run the following command to add the package feed to your NuGet configuration, replacing the
<GITHUB_USER_NAME>
and<PERSONAL_ACCESS_TOKEN>
placeholders with the relevant values:~> dotnet nuget add source -n GitHub -u <GITHUB_USER_NAME> -p <PERSONAL_ACCESS_TOKEN> https://nuget.pkg.github.com/DamianEdwards/index.json
You should now be able to add a reference to the package specifying a version from the repository packages feed
See these instructions for further details about working with GitHub package feeds
Getting Started
- Install the NuGet package into your ASP.NET Core project:
> dotnet add package MinimalApis.Extensions --prerelease
- In your project's
Program.cs
, call theAddEndpointsProvidesMetadataApiExplorer()
method onbuilder.Services
to enable enhanced endpoint metadata inApiExplorer
:var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsProvidesMetadataApiExplorer(); // <-- Add this line builder.Services.AddSwaggerGen(); ...
- 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 viaResults.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
andIProvideEndpointResponseMetadata
- Union
IResult
return types viaResults<TResult1, TResultN>
that enable route handler delegates to declare all the possibleIResult
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.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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 is compatible. 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. |
-
net6.0
- MiniValidation (>= 0.5.1-pre.20220429.53)
-
net7.0
- MiniValidation (>= 0.5.1-pre.20220429.53)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MinimalApis.Extensions:
Package | Downloads |
---|---|
VeoTech.Core.Api.Shared
Shared repo between repos in cloud team in Veo. No business logic, secrets or any other sensitive data in this repo only just shared functionality between repos and a few common test classes as well. |
GitHub repositories (7)
Showing the top 5 popular GitHub repositories that depend on MinimalApis.Extensions:
Repository | Stars |
---|---|
mehdihadeli/food-delivery-microservices
🍔 A practical and imaginary food delivery microservices, built with .Net 8, MassTransit, Domain-Driven Design, CQRS, Vertical Slice Architecture, Event-Driven Architecture, and the latest technologies.
|
|
DamianEdwards/MinimalApiPlayground
A place I'm trying out the new ASP.NET Core minimal APIs features.
|
|
mehdihadeli/food-delivery-modular-monolith
🌭 A practical and imaginary food and grocery delivery modular monolith, built with .Net 8, Domain-Driven Design, CQRS, Vertical Slice Architecture, Event-Driven Architecture, and the latest technologies.
|
|
andrewlock/asp-dot-net-core-in-action-3e
Source code examples for ASP.NET Core in Action, Third Edition
|
|
davidfowl/uController
A source generator for minimal APIs
|
Version | Downloads | Last updated |
---|---|---|
0.11.0 | 193,707 | 6/22/2023 |
0.10.1 | 30,132 | 12/21/2022 |
0.10.0 | 5,233 | 11/29/2022 |
0.9.1-pre.20221114.39 | 489 | 11/14/2022 |
0.9.0-pre.20221011.36 | 6,541 | 10/11/2022 |
0.8.0-pre.20220915.33 | 3,991 | 9/15/2022 |
0.7.2-pre.20220906.32 | 140 | 9/6/2022 |
0.7.1-pre.20220712.30 | 3,899 | 7/12/2022 |
0.7.0-pre.20220528.28 | 16,884 | 5/28/2022 |
0.6.0-pre.20220429.27 | 3,915 | 4/29/2022 |
0.5.2-pre.20220322.22 | 2,180 | 3/22/2022 |
0.5.1-pre.20220322.18 | 150 | 3/22/2022 |
0.5.0-pre.20220321.15 | 5,297 | 3/21/2022 |
0.4.1-pre.20211113.13 | 3,122 | 11/13/2021 |
0.4.0-pre.20211113.12 | 535 | 11/13/2021 |
0.3.1-pre.20211113.11 | 255 | 11/13/2021 |
0.3.1-pre.20211111.10 | 549 | 11/11/2021 |
0.3.0-pre.20211110.9 | 189 | 11/10/2021 |
0.1.0-pre.20211027.5 | 506 | 10/27/2021 |