使用 ASP.NET Core 6 构建 RESTful Web API - Medium
作者:API传播员 · 2025-11-22 · 阅读时间:5分钟
本文详细介绍了如何使用 ASP.NET Core 6 构建 RESTful Web API,涵盖 REST 架构风格、项目初始化、EF Core 数据库管理、CRUD 操作实现以及 Swagger UI 测试。通过具体示例,帮助开发者掌握构建高效 Web API 的完整流程,包括使用 ASP.NET Core 6 和 EF Core 进行数据库操作。
什么是 REST?
REST(Representational State Transfer,表述性状态转移)是一种架构风格,旨在为 Web 上的计算机系统之间提供标准化的通信方式,使系统之间的交互更加简单和高效。REST 的核心特点包括:
- 客户端-服务器架构:客户端和服务器可以独立开发,彼此之间没有依赖关系。
- 无状态性:每次请求都包含完成请求所需的所有信息,服务器不会存储客户端的会话状态。
- 统一接口:通过类似 URI 的目录结构公开资源。
- 资源表示:使用 JSON 或 XML 格式传递数据对象及其属性。
REST 通常与 HTTP 协议结合使用,主要通过以下四种 HTTP 动词与资源交互:
- GET:检索特定资源或资源集合。
- POST:创建新资源。
- PUT:更新特定资源。
- DELETE:删除特定资源。
REST 的简单性和灵活性使其在 Web 开发中广泛应用,逐渐取代了基于 SOAP 的接口设计。
创建 ASP.NET Core 6 Web API 项目
初始化项目
- 打开 Visual Studio 2022,选择 创建新项目。
- 选择 ASP.NET Core Web API 模板。
- 为项目命名并选择 .NET 6.0 作为框架。
默认项目结构
创建项目后,默认会包含以下内容:
- Program.cs:已自动添加 Swagger 支持。
- Swashbuckle.AspNetCore:作为依赖项的 NuGet 包。
运行项目(Ctrl + F5)后,浏览器会显示 Swagger UI,您可以通过它测试默认的 API 方法。
使用实体框架核心(EF Core)管理数据库
数据模型和数据库上下文
-
创建数据模型类,并添加以下属性:
public int Id { get; set; } public string Title { get; set; } public string Genre { get; set; } public int Year { get; set; } -
创建数据库上下文类:
public class MovieContext : DbContext { public MovieContext(DbContextOptions options) : base(options) { } public DbSet Movies { get; set; } = null!; } -
在
appsettings.json中添加连接字符串:"ConnectionStrings": { "DefaultConnection": "Server=(localdb)\mssqllocaldb;Database=MovieDB;Trusted_Connection=True;" } -
在
Program.cs中注册数据库上下文:builder.Services.AddDbContext(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
使用迁移创建数据库
-
打开 包管理器控制台(PMC),运行以下命令:
Add-Migration InitialCreate Update-Database -
数据库和表会自动创建,您可以通过 SQL Server 对象资源管理器 查看。
创建 Movies API 控制器
添加控制器
- 在 Controllers 文件夹中,右键选择 添加 > 控制器。
- 选择 API 控制器 – 空 模板,为控制器命名为
MoviesController。
CRUD 操作
GET 方法
以下代码实现了两个 GET 端点:
- 获取所有电影记录:
https://localhost:{port}/api/movies - 获取特定电影记录:
https://localhost:{port}/api/movies/{id}
[HttpGet]
public async Task<ActionResult<IEnumerable>> GetMovies()
{
return await _context.Movies.ToListAsync();
}
[HttpGet("{id}")]
public async Task<ActionResult> GetMovie(int id)
{
var movie = await _context.Movies.FindAsync(id);
if (movie == null)
{
return NotFound();
}
return movie;
}
POST 方法
以下代码用于创建新的电影记录:
[HttpPost]
public async Task<ActionResult> PostMovie(Movie movie)
{
_context.Movies.Add(movie);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetMovie), new { id = movie.Id }, movie);
}
PUT 方法
以下代码用于更新现有的电影记录:
[HttpPut("{id}")]
public async Task PutMovie(int id, Movie movie)
{
if (id != movie.Id)
{
return BadRequest();
}
_context.Entry(movie).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!_context.Movies.Any(e => e.Id == id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
DELETE 方法
以下代码用于删除指定的电影记录:
[HttpDelete("{id}")]
public async Task DeleteMovie(int id)
{
var movie = await _context.Movies.FindAsync(id);
if (movie == null)
{
return NotFound();
}
_context.Movies.Remove(movie);
await _context.SaveChangesAsync();
return NoContent();
}
测试 API
使用 Swagger UI 测试
- 启动项目(Ctrl + F5),打开 Swagger UI。
- 测试各个端点:
- GET:查看所有电影或特定电影。
- POST:添加新电影。
- PUT:更新电影信息。
- DELETE:删除电影记录。
验证数据库
通过 SQL Server 对象资源管理器 查看数据库,验证数据的正确性。
总结
本文介绍了如何使用 ASP.NET Core 6 和实体框架核心(EF Core)构建一个 RESTful Web API。通过实现 CRUD 操作,您可以轻松管理存储在 SQL Server 数据库中的电影记录。借助 Swagger UI,您可以快速测试 API 的功能。希望本文对您构建 Web API 项目有所帮助!
原文链接: https://medium.com/net-core/build-a-restful-web-api-with-asp-net-core-6-30747197e229
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
最新文章
- OWASP API十大漏洞及DAST如何保护您 …
- API安全在物联网(IoT)中的关键作用
- Java后端API接口开发规范
- PyJWT:轻松搞定Token认证,让你的API更安全!
- 2025年7月GitHub 上热门的10大API开源项目
- 构建远程医疗应用的10个最佳Telehealth API选项
- 使用 FastAPI、Docker 和 Hugging Face Transformers 的文本分类 API
- IdeaGitLab 插件API Token is not valid解决方案
- API架构设计基础
- 什么是GPT-4?完整指南
- 最佳API测试工具:REST和SOAP自动化 – Parasoft
- 如何使用Ollama(完整Ollama速查表)- Apidog