MinimalApis.Extensions 0.11.0

dotnet add package MinimalApis.Extensions --version 0.11.0                
NuGet\Install-Package MinimalApis.Extensions -Version 0.11.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块版本的 Install-Package
<PackageReference Include="MinimalApis.Extensions" Version="0.11.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用此包。
paket add MinimalApis.Extensions --version 0.11.0                
#r "nuget: MinimalApis.Extensions, 0.11.0"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此内容复制到交互式工具或脚本的源代码中以引用包。
// Install MinimalApis.Extensions as a Cake Addin
#addin nuget:?package=MinimalApis.Extensions&version=0.11.0

// Install MinimalApis.Extensions as a Cake Tool
#tool nuget:?package=MinimalApis.Extensions&version=0.11.0                

MinimalApis.Extensions

一组扩展和助手,可扩展 ASP.NET Core 最小 API 的功能。

安装

Nuget

NuGet 发布

此包目前在 nuget.org 上可用

> dotnet add package MinimalApis.Extensions

CI 构建

如果您希望使用此存储库的 main 分支的构建,您可以从 此存储库的包源 安装它们。

  1. 为您的 GitHub 帐户创建一个具有 read:packages 范围的 个人访问令牌,并设置所需的有效期长度

    <img width="583" alt="image" src="https://user-images.githubusercontent.com/249088/160220117-7e79822e-a18a-445c-89ff-b3d9ca84892f.png">

  2. 在命令行中,导航到您的用户配置文件目录,然后运行以下命令将包源添加到您的 NuGet 配置中,将 <GITHUB_USER_NAME><PERSONAL_ACCESS_TOKEN> 占位符替换为相关值

    ~> dotnet nuget add source -n GitHub -u <GITHUB_USER_NAME> -p <PERSONAL_ACCESS_TOKEN> https://nuget.pkg.github.com/DamianEdwards/index.json
    
  3. 现在您应该能够添加一个指定版本的包引用来 存储库包源

  4. 有关使用 GitHub 包源的其他详细信息,请参阅 这些说明

入门

  1. 将 NuGet 包安装到您的 ASP.NET Core 项目
    > dotnet add package MinimalApis.Extensions
    
  2. 仅适用于.NET 6.0项目 在您的项目中的 Program.cs 文件中,调用 builder.Services 上的 AddEndpointsMetadataProviderApiExplorer() 方法以在 ApiExplorer 中启用增强的端点元数据
    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddEndpointsMetadataProviderApiExplorer(); // <-- Add this line in .NET 6.0 projects
    builder.Services.AddSwaggerGen();
    ...
    
  3. 更新您的Minimal APIs以使用此库中的过滤器、绑定和结果类型,例如:
    app.MapPut("/todos/{id}", async Task<Results<NotFound, NoContent>> (int id, Todo todo, TodoDb db) =>
    {
        var existingTodo = await db.Todos.FindAsync(id);
    
        if (existingTodo is null)
            return TypedResults.NotFound();
    
        existingTodo.Title = todo.Title;
        existingTodo.IsCompleted = todo.IsCompleted;
    
        await db.SaveChangesAsync();
    
        return TypedResults.NoContent();
    })
    .WithParameterValidation();
    

包含内容:

此库提供了帮助扩展ASP.NET Core Minimal APIs核心功能的类型,方式如下:

  • 通过 IParameterBinderBind<TValue>Body<TValue>JsonFormFile 等提供增强的参数绑定
  • 通过 Results.Extensions 提供PlainTextHtmlUnsupportedMediaType 等额外的结果类型
  • 对于.NET 7.0应用程序,提供一个端点过滤器,用于验证路由处理程序参数,并在验证失败时自动响应验证问题
  • 包括用于.NET 6.0项目的.NET 7.0特性填充
    • 提供易于进行单元测试的泛型 IResult 对象(通过 TypedResults 提供),包括 IStatusCodeHttpResultIContentTypeHttpResultIValueHttpResult 接口
    • 通过输入和结果类型通过 IEndpointParameterMetadataProviderIEndpointMetadataProvider 填充端点元数据,自动在 Swagger/OpenAPI 中填充详细的端点描述
    • 通过 Results<TResult1, TResultN> 联合 IResult 返回类型,允许路由处理程序委托声明它们可以返回的所有可能的 IResult 类型,启用编译时类型检查,并自动从类型信息中填充所有可能的响应到 Swagger/OpenAPI 中

示例项目

TodoApis.Dapper

一个使用 ASP.NET Core Minimal APIs 和 Dapper 库存 SQLite 中进行数据存储的待办事项应用的示例。

MinimalApis.Examples

包含此库中其他类型的简单示例。

MinimalApiPlayground

展示了许多使用此库中的类型以及与 ASP.NET Core Minimal APIs 相关的其他事物的示例。

产品 兼容的和额外的计算目标框架版本。
.NET net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 兼容。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
兼容的目标框架
包含的目标框架(在包中)
更多关于 目标框架.NET Standard 的信息。

NuGet 包 (1)

显示依赖于 MinimalApis.Extensions 的前1个 NuGet 包

下载
VeoTech.Core.Api.Shared

Veo云团队中仓库之间的共享库。此库中不包含业务逻辑、密钥或其他敏感数据,仅包含仓库之间的共享功能以及几个常见的测试类。

GitHub 仓库 (6)

显示依赖于 MinimalApis.Extensions 的前5个流行的 GitHub 仓库

仓库 星标数
mehdihadeli/food-delivery-microservices
🍔 一个实用和虚构的食品和杂货配送微服务,使用 .Net 8、MassTransit、领域驱动设计、CQRS、垂直切片架构、事件驱动架构以及最新技术构建。
DamianEdwards/MinimalApiPlayground
我尝试新 ASP.NET Core 最简 API 功能的地方。
mehdihadeli/food-delivery-modular-monolith
🌭 一个实用和虚构的食品和杂货配送模块化单体架构,使用 .Net 8、领域驱动设计、CQRS、垂直切片架构、事件驱动架构以及最新技术构建。
davidfowl/uController
为最简 API 创建源生成器
ardalis/WebApiBestPractices
有关我 Pluralsight 课程这一主题的资源。
版本 下载 最后更新
0.11.0 137,947 6/22/2023
0.10.1 27,853 12/21/2022
0.10.0 4,437 11/29/2022
0.9.1-pre.20221114.39 400 11/14/2022
0.9.0-pre.20221011.36 6,518 10/11/2022
0.8.0-pre.20220915.33 3,977 9/15/2022
0.7.2-pre.20220906.32 128 9/6/2022
0.7.1-pre.20220712.30 3,884 7/12/2022
0.7.0-pre.20220528.28 16,255 5/28/2022
0.6.0-pre.20220429.27 3,895 4/29/2022
0.5.2-pre.20220322.22 2,172 3/22/2022
0.5.1-pre.20220322.18 139 3/22/2022
0.5.0-pre.20220321.15 4,505 3/21/2022
0.4.1-pre.20211113.13 3,099 11/13/2021
0.4.0-pre.20211113.12 523 11/13/2021
0.3.1-pre.20211113.11 244 11/13/2021
0.3.1-pre.20211111.10 534 11/11/2021
0.3.0-pre.20211110.9 177 11/10/2021
0.1.0-pre.20211027.5 497 10/27/2021