当前位置: 首页 > article >正文

在 .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 中包含以下几行:

var connectionString = builder.Configuration.GetConnectionString("ProductDB");
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。如果你喜欢此文章请点赞、收藏,如果不喜欢你可以评论、建议。祝你有美好的一天。


http://www.kler.cn/a/392483.html

相关文章:

  • 【唐叔学算法】第19天:交换排序-冒泡排序与快速排序的深度解析及Java实现
  • docker 搭建集群
  • “乡村探索者”:村旅游网站的移动应用开发
  • dockerfile文档编写(1):基础命令
  • sentinel笔记9- 限流规则持久化(上)
  • Java 中反射的高级用法:窥探 Java 世界的魔法之门
  • 上河AI上线ComfyUI工作台
  • 如何使用OpenCV和Python进行相机校准
  • Python+robotframework接口自动化测试实操(超详细总结)
  • 【Docker】Docker基础及docker-compose
  • 传奇996_19——龙岭总结
  • 最全最简单理解迭代器
  • HarmonyOS 如何实现传输中的数据加密
  • 《DiffusionDet: Diffusion Model for Object Detection》ICCV2023
  • Android Mobile Network Settings | APN 菜单加载异常
  • Docker如何以配置文件方式安装nginx
  • WPF应用设置参数存储
  • 【Linux】Linux环境基础开发工具使用(下)
  • C++入门基础知识148—【关于C++ 二元运算符重载】
  • C#语言:现代软件开发的核心工具
  • shardingsphere5.5.1基于spring体系的集成-数据脱敏04
  • uni-app表格带分页,后端处理过每页显示多少条
  • 深入理解接口测试:实用指南与最佳实践5.0(一)
  • Scala的List习题
  • 鸿蒙next版开发:相机开发-录像(ArkTS)
  • 算法训练(leetcode)二刷第二十三天 | 455. 分发饼干、*376. 摆动序列、53. 最大子数组和