为单一微服务创建ASP.NET Minimal APIs:实践指南

作者:API传播员 · 2025-12-10 · 阅读时间:4分钟

我们将通过 ASP.NET Core Minimal APIs 深入探索微服务开发,专注于从零开始构建一个单一微服务。本实践指南将逐步引导您完成整个过程,最终实现一个功能强大的 Web API

我们的示例项目是一个经典的 Todo CRUD 操作。


设置项目环境

首先,我们需要准备开发环境并创建项目:

  1. 启动 Visual Studio: 打开 Visual Studio 并选择“创建新项目”。
  2. 选择 ASP.NET Web API 项目 搜索“ASP.NET Core Web API”并选择它,然后点击“下一步”。
  3. 项目配置: 将项目命名为“TodoApi”,并勾选“顶级语句和控制器”选项以启用简化设置,最后点击“创建”。

理解 Program.cs 文件

创建项目后,您会看到一个名为 Program.cs 的文件,这是项目的核心入口点。以下是文件的基本结构:

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

在这里,builder 用于配置应用程序的默认设置,而 app 则是构建后的应用程序实例,准备好接受服务和配置。


定义模型

在项目中创建一个名为 TodoItem 的类,用于定义 Todo 项目的基本属性:

public class TodoItem
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsComplete { get; set; }
}

集成数据库

安装 NuGet 包

为了使用内存数据库,我们需要通过 NuGet 安装 [Microsoft](https://www.explinks.com/provider/uid20241113679109d01e06).EntityFrameworkCore.InMemory 包。

创建数据库上下文

新增一个名为 TodoDb.cs 的文件,用于定义数据库上下文类:

public class TodoDb : DbContext
{
    public TodoDb(DbContextOptions options) : base(options) { }
    public DbSet Todos { get; set; }
}

注册服务

Program.cs 文件中注册 TodoDb,以便通过依赖注入使用数据库上下文:

builder.Services.AddDbContext(opt => opt.UseInMemoryDatabase("TodoList"));

定义 API 端点

Program.cs 文件中定义 API 的 CRUD 端点,用于处理 Todo 项目的操作:

app.MapGet("/todoitems", async (TodoDb db) => await db.Todos.ToListAsync());
app.MapGet("/todoitems/{id}", async (int id, TodoDb db) => await db.Todos.FindAsync(id));
app.MapPost("/todoitems", async (TodoItem todo, TodoDb db) =>
{
    db.Todos.Add(todo);
    await db.SaveChangesAsync();
    return Results.Created($"/todoitems/{todo.Id}", todo);
});
app.MapPut("/todoitems/{id}", async (int id, TodoItem inputTodo, TodoDb db) =>
{
    var todo = await db.Todos.FindAsync(id);
    if (todo is null) return Results.NotFound();

    todo.Name = inputTodo.Name;
    todo.IsComplete = inputTodo.IsComplete;    await db.SaveChangesAsync();
    return Results.NoContent();
});
app.MapDelete("/todoitems/{id}", async (int id, TodoDb db) =>
{
    var todo = await db.Todos.FindAsync(id);
    if (todo is null) return Results.NotFound();    db.Todos.Remove(todo);
    await db.SaveChangesAsync();
    return Results.NoContent();
});

这些端点分别实现了获取所有 Todo 项目、根据 ID 获取单个项目、添加新项目、更新项目以及删除项目的功能。


测试 API

完成开发后,可以通过以下步骤测试 API:

  1. 运行应用程序: 在 Visual Studio 中点击运行按钮,或在终端中使用命令 dotnet run
  2. 访问端点: 打开浏览器或使用 Postman 等工具,访问 https://localhost:{port}/todoitems

如果一切正常,您将收到一个包含 Todo 项目的 JSON 响应,证明 API 已成功运行。


总结

通过本指南,您已经成功构建了一个基于 ASP.NET Core Minimal APIs 的 Todo 服务。该项目展示了微服务架构的基本概念,并为开发更复杂的应用程序提供了坚实的基础。通过进一步扩展,您可以将其集成到更大的微服务生态系统中,例如使用 Docker、RabbitMQ、PostgreSQL 等技术。

原文链接: https://mehmetozkaya.medium.com/create-asp-net-minimal-apis-for-single-microservice-a-hands-on-guide-4a9827157ab7