使用 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)后,浏览器会显示 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)构建一个 CRUD 操作,您可以轻松管理存储在 SQL Server 数据库中的电影记录。借助 Swagger UI,您可以快速Web API 项目有所帮助!
原文链接: https://medium.com/net-core/build-a-restful-web-api-with-asp-net-core-6-30747197e229
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
最新文章
- 为开源项目 go-gin-api 增加 WebSocket 模块
- Python调用股票API获取实时数据
- API请求 – 什么是API请求?
- 给初学者的RESTful API 安全设计指南!
- 创造你梦想的家:AI家装设计API的魅力
- 支付网关API如何支持小型企业?
- 深入解析OpenAI GPT接口:从快速入门到开发实践
- 如何获取谷歌新闻 API Key 密钥(分步指南)
- 什么是API,为什么它对您很重要?- Nexus Software Systems
- Python调用免费翻译API实现Excel文件批量翻译
- 银行如何利用对话式 AI 实现客户服务转型
- AI编程的风险,如何毁掉你的 API?