在 .NET 6.0 中创建用于 CRUD 操作的 Web API
快速概述:
在动态的技术世界中,创建强大的 Web API 已成为开发人员不可或缺的关键技能。这些 API 是促进不同应用程序之间顺畅通信的重要链接,可实现无缝数据检索和操作。本文的重点是在 .NET 6 中为 CRUD 操作创建 Web API。
为了实现这一点,我们将利用 .NET 6.0 的强大功能,这是科技巨头微软提供的先进且尖端的框架。在开始这段旅程之前,让我们确保全面了解 .NET 6 Web API 最佳实践究竟包含哪些内容。因此,让我们从对其进行详细探索开始。
什么是 .NET 6 Web API?
NET 6 Web API 是一个先进的框架,一个精心设计的创新框架,用于构建针对 Web 应用程序个性化的弹性应用程序编程接口。ASP.NET Core 为 dotnet 6 提供了基础,它提供了高性能和跨平台功能,使其成为现代 Web 开发的理想选择。
从早期版本过渡而来,.NET 6 Web API 引入了重大改进,提高了开发人员的效率和生产力。借助 dotnet 6,开发人员可以享受热重载功能,该功能使他们可以立即应用代码更改,而无需在开发过程中重新启动应用程序。它还具有强大的诊断和测试工具,可快速解决问题,促进团队合作并提高代码质量。
此外,您可以控制 API CRUD 操作,并通过授权和身份验证实施来保护您的数据。
Web 服务中的 CRUD 是什么?
CRUD 是创建、读取、更新和删除的首字母缩写词。它说明了可以对数据执行的四个主要操作:
- 创建或 C:向数据库添加新数据或记录。
- 读取或 R:从数据库中检索或获取现有数据。
- 更新或 U:修改数据库中现有数据。
- 删除或 D:从数据库中删除数据。
这些操作代表通过 Web API 与存储在数据库或数据源中的数据交互所需的基本功能。
什么是 Get、Post、Put 和 Delete 方法?
在.NET 开发中,要与服务器交互,通常使用的 HTTP 方法是 GET、POST、PUT 和 DELETE。它们对于传输和检索数据至关重要。在讨论 CRUD 和 HTTP 方法之间的差异之前,了解每种方法的具体情况至关重要。
- 获取:从 Web 服务器检索数据。
- Post:将数据提交到 Web 服务器上的特定资源进行处理。
- 放入:用新信息更新或替换服务器上的现有数据。
- 删除:从 Web 服务器中删除特定资源。
CRUD 与 Get Post Put Delete (HTTP 方法)
CRUD 和 HTTP 方法的主要区别在于它们的范围和目的:
CRUD 是一个更高级别的概念,表示管理应用程序或系统内数据的四种基本操作。相比之下,HTTP 方法是在 Web API 和 Web 服务环境中执行这些 CRUD 操作的具体方式。
通俗地说,CRUD 是一个说明数据管理操作的一般概念,而 HTTP 方法解释了如何在 Web API 上下文中执行这些操作。
在 .NET 6 中使用 ASP.NET Core 构建 Web API 的七个步骤
在使用 .NET 6 中的 ASP.NET 核心构建 Web API 之前,请确保已安装所有以下必需的工具和技术:
- Visual Studio 2022:确认您的机器已安装最新版本的 Visual Studio 2022。这个强大的开发环境支持 .NET 6 开发,提供无缝高效的编码体验。
- .NET SDK 6.0:安装 .NET SDK 6.0 或更高版本;它保留了构建强大的 Web API 所需的工具和库。
- SQL Server:确保您可以访问 SQL Server 数据库,因为它将成为 Web API 数据的存储和管理中心。设置 SQL Server 数据库对于成功处理和检索应用程序中的数据至关重要。
步骤 1:启动新项目
按照以下步骤创建一个新项目:
- 单击任务栏上的“搜索”按钮。
- 键入Visual Studio并按Enter。
- 将出现Visual Studio窗口。
- 单击“创建新项目”。
- 选择ASP.NET Core Web API作为项目类型。
- 单击“下一步”。
- 在项目名称字段中,输入项目的名称(CRUD_Project)。
- 在位置字段中,输入保存项目的位置。
- 单击“下一步”。
- 从框架列表中,选择.Net 6.0 (长期支持)。
- 从身份验证类型列表中,选择.Net 6.0 (长期支持)。
- 在Docker OS部分下,验证使用控制器(取消选中以使用最少 API)和启用 OpenAPI 支持选项前面的复选框是否被选中。
- 单击“创建”。
第 2 步:安装 Microsoft.EntityFrameworkCore.Tools 和 Microsoft.EntityFrameworkCore.SqlServer – (NuGet 包)
按照以下步骤安装.Tools包:
- 在Visual Studio窗口中,右键单击“Dependencies”。
- 选择管理 NuGet 包。
- 选择“浏览”选项卡。
- 键入Microsoft.EntityFrameworkCore.Tools并按Enter。
- 安装最新版本。
- 现在,以相同的方式添加(安装).SqlServer包。
步骤 3:在 SQL 中创建新数据库
按照以下步骤在 SQL 中创建一个新的数据库:
- 创建一个名为CRUD_DB的新 SQL 数据库(如果需要,您可以选择其他名称)。
- 执行脚本在 CRUD_DB 数据库中创建产品表。
步骤 4:创建数据库上下文和模型
按照下面提到的步骤,在 ASP.NET Core Web API 项目中使用数据库优先方法在 SQL 中构建一个新数据库:
- 单击任务栏上的“搜索”按钮。
- 键入Visual Studio并按Enter。
- 将出现Visual Studio窗口。
- 从工具列表中,选择NuGet 包管理器,然后单击包管理器控制台。
- 将出现“包管理器控制台”窗口。
- 键入“ Scaffold-DbContext “Server=SERVERNAME;Database=CRUD_DB;Integrated Security=True” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models ”。 (将 CRUD_DB 替换为您的数据库服务器名称)
- 按Enter。
附加信息:
执行该命令后,将在项目解决方案中创建 Model 文件夹,其中包含两个基本文件:ProductDBContext.cs 和 Product.cs。ProductDBContext.cs 文件处理数据库交互,而 Product.cs 则用作表示数据库中“Products”表结构的模型。
为了保持代码库的简洁高效,建议从 ProductDBContext.cs 中删除 OnConfiguring() 方法,因为它包含数据库连接字符串,为了更好地组织,应该以不同的方式管理它。相反,连接字符串将添加到 appsettings.json 文件中。此外,将删除同一文件中的 ProductDBContext() 构造函数,以增强代码的简单性和性能。这些调整有助于组织良好的项目,遵循.NET Core开发的最佳实践。
步骤 5:设置数据库连接
按照以下步骤设置 DB 连接:
- 打开appsettings.json文件。
- 插入所需的数据库连接字符串。
- 将servername替换为您的数据库服务器的名称。
- 使用Program.cs文件中的连接字符串配置数据库连接。
更新 Program.cs
为了适应 .NET 6 中引入的更改,现在在 Program.cs 文件中进行了配置调整,因为 Startup.cs 不再用于配置。在 Program.cs 中包含以下几行:
builder.Services.AddDbContextPool(option => option.UseSqlServer(ConnectionStrong));
不要忘记在 Program.cs 文件的顶部包含必要的“using”语句以启用所需的功能。
USING Microsoft.EntityFrameworkCore;
USING ProductAPI.Models;
步骤 6:插入产品控制器
按照以下步骤插入产品控制器:
- 在解决方案资源管理器中,右键单击“控制器”文件夹。
- 选择添加,然后单击控制器。
- 将出现“添加控制器”对话框。
- 在控制器名称字段中输入名称。(CRUD_CONTROLLER)
- 从模板列表中,选择空 API 控制器。
- 单击“添加”。
步骤 7:在 ProductsController.cs 中添加方法
在 ProductsController.cs 文件中,我们将整合必要的端点以完成四个主要的 CRUD 操作:GET、POST、PUT 和 DELETE。这些端点支持与 API 进行通信并有效地处理数据。您可以在 ProductsController.cs 文件中使用提供的代码片段来实现这些功能。通过这样做,您将能够在“Products”表上执行“n”个 CRUD 操作,并确保在您的 Web API 中无缝处理数据。
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using ProductCRUDAPI.Models;
namespace ProductCRUDAPI.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
private readonly ProductDBContext _context;
public ProductsController(ProductDBContext context)
{
_context = context;
}
[HttpGet]
public async Task<IEnumerable<Product>> Get()
{
return await _context.Products.ToListAsync();
}
[HttpGet("{id}")]
public async Task<IActionResult> Get(int id)
{
if (id < 1)
return BadRequest();
var product = await _context.Products.FirstOrDefaultAsync(m => m.Id == id);
if (product == null)
return NotFound();
return Ok(product);
}
[HttpPost]
public async Task<IActionResult> Post(Product product)
{
_context.Add(product);
await _context.SaveChangesAsync();
return Ok();
}
[HttpPut]
public async Task<IActionResult> Put(Product productData)
{
if (productData == null || productData.Id == 0)
return BadRequest();
var product = await _context.Products.FindAsync(productData.Id);
if (product == null)
return NotFound();
product.Name = productData.Name;
product.Description = productData.Description;
product.Price = productData.Price;
await _context.SaveChangesAsync();
return Ok();
}
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(int id)
{
if (id < 1)
return BadRequest();
var product = await _context.Products.FindAsync(id);
if (product == null)
return NotFound();
_context.Products.Remove(product);
await _context.SaveChangesAsync();
return Ok();
}
}
}
步骤 8:启动 Web API
按照以下步骤启动 Web API:
- 在Visual Studio中按F5启动Web API。
- 在Chrome中打开一个新标签页。
- 在 URL 栏中,输入“ https://localhost:{port}/swagger/index.html。 ”(将“{ port }”替换为 API 正在运行的实际端口号)。
- 测试您的CRUD Web API的功能。
结论
我希望一切都清楚,并且您可以轻松地使用 .NET 6.0 创建 CRUD Web API。如果你喜欢此文章请点赞、收藏,如果不喜欢你可以评论、建议。祝你有美好的一天。