ASP.NET MapPost
最后修改于 2025 年 4 月 3 日
在本文中,我们将探讨 ASP.NET 8 中的 MapPost 方法。此方法对于在最小 API 应用程序中处理 HTTP POST 请求至关重要。
ASP.NET 是一个跨平台、高性能的框架,用于构建现代 Web 应用程序。MapPost 方法简化了 POST 请求的路由。
基本定义
ASP.NET 中的 MapPost 方法用于在最小 API 中为 HTTP POST 请求创建路由处理程序。POST 通常用于创建资源。
当应用于路由时,MapPost 指定处理程序仅为 POST 请求调用。它可以与路由模板和参数一起使用。
MapPost 是 ASP.NET 在最小 API 中的端点路由系统的一部分。它提供了控制器路由的轻量级替代方案。
ASP.NET MapPost 示例
下面的示例演示了一个使用 MapPost 的基本最小 API。
Program.cs
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); var products = new List<Product>() { new(1, "Laptop", 999.99m), new(2, "Mouse", 19.99m), new(3, "Keyboard", 49.99m) }; app.MapGet("/products", () => Results.Ok(products)); app.MapGet("/products/{id}", (int id) => { var product = products.FirstOrDefault(p => p.Id == id); return product is null ? Results.NotFound() : Results.Ok(product); }); app.MapPost("/products", (Product product) => { products.Add(product); return Results.Created($"/products/{product.Id}", product); }); app.Run(); public record Product(int Id, string Name, decimal Price);
此示例设置了一个具有三个端点的最小 API。前两个使用 MapGet 检索产品,第三个使用 MapPost 进行创建。
位于 /products
的 MapPost 端点在请求正文中接受一个 Product 对象。它将产品添加到集合中并返回 201 Created 响应。
Results.Created
方法生成一个带有 Location 标头指向新资源的正确 HTTP 201 响应。这遵循 REST 约定。
该示例展示了 MapPost 如何与 MapGet 一起使用来创建完整的 CRUD API。最小 API 方法减少了样板代码。
来源
Microsoft ASP.NET Minimal APIs 文档
在本文中,我们探讨了 ASP.NET 8 中的 MapPost 方法。这一强大功能简化了用于处理 POST 请求的端点的创建。