Z
ZHANK
编程在线教程C# 教程ASP.NET Core 最小 API
Web 开发

ASP.NET Core 最小 API

Minimal API 路由/参数绑定、GET/POST 处理、返回 JSON

ASP.NET Core 最小 API

.NET 6+ 的最小 API——不用 Controller,几行代码构建 REST API。

学完本章你将: 掌握 Minimal API 路由/参数绑定、GET/POST、返回 JSON。


第一个最小 API

csharp
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello, World!");

app.MapGet("/users/{id}", (int id) =>
    Results.Ok(new { Id = id, Name = "小明" }));

app.MapPost("/users", (User user) =>
    Results.Created($"/users/{user.Id}", user));

app.Run();

record User(int Id, string Name, string Email);

路由与参数绑定

csharp
// 路由参数
app.MapGet("/users/{id:int}", (int id) => { });

// 查询参数
app.MapGet("/search", (string? q, int page = 1) => { });

// 请求体(自动反序列化)
app.MapPost("/users", async (User user, UserService svc) => {
    await svc.CreateAsync(user);
    return Results.Created($"/users/{user.Id}", user);
});

// 依赖注入——直接在参数中声明
app.MapGet("/config", (IConfiguration config) =>
    config["AppName"]);

分组路由

csharp
var users = app.MapGroup("/users");
users.MapGet("/", GetAllUsers);
users.MapGet("/{id}", GetUser);
users.MapPost("/", CreateUser);
users.MapPut("/{id}", UpdateUser);
users.MapDelete("/{id}", DeleteUser);