如何在.NET Core Web API 中实现 RESTful API?

· 约 10 分钟读完

RESTful API 是现代 Web 开发中非常流行的一种方式,它以 REST 风格来设计和实现 Web 服务,采用统一的 URL 和 HTTP 动词来表示资源以及对资源的操作。在本文中,我们将学习如何在 .NET Core Web API 中实现 RESTful API,并提供基本的指导意义和示例代码。

开始之前

在开始之前,需要了解以下的基础知识:

  • .NET Core 的基础知识,包括 C# 语言和 ASP.NET Core Web API 框架;
  • RESTful API 的基础知识,包括 HTTP 协议和 RESTful 架构风格。

步骤一:创建 Web API 项目

首先,我们需要创建一个 .NET Core Web API 项目。可以通过 Visual Studio 或者 .NET Core CLI 来创建项目。下面是使用 .NET Core CLI 创建项目的步骤:

  1. 打开命令行终端,切换到项目保存的目录下;

  2. 运行以下命令来创建项目:

    其中 -n 参数指定项目的名称为 MyWebApi,可以根据实际情况替换为自己的名称。

  3. 进入项目目录,并打开 MyWebApi.csproj 文件,添加以下依赖项:

    这里使用了 ASP.NET Core MVC 框架的 Microsoft.AspNetCore.Mvc 和 Microsoft.AspNetCore.Mvc.NewtonsoftJson 依赖项,它们分别提供了 Web API 的基本功能和 JSON 序列化和反序列化功能。

  4. 创建一个名为 TodoItem 的类,用于存储待办事项数据:

    在这个类中,我们定义了三个属性 Id、Name 和 IsComplete,用于表示待办事项的唯一标识、名称和状态。

  5. 在 Startup.cs 文件中,添加以下代码来配置 Web API:

    在这里,我们注册了 ASP.NET Core MVC 框架,并使用 Swagger 来生成 API 文档和测试页面。

步骤二:实现 GET API

现在,我们已经有了一个空的 Web API 项目,并且已经可以成功运行。接下来,我们将实现一个简单的 GET API 来获取所有的待办事项。

首先,我们需要在 TodoController.cs 文件中添加以下代码:

在这个代码中,我们定义了一个名为 TodoController 的 RESTful API 控制器,它继承了 ASP.NET Core 中的 ControllerBase 类。使用 [ApiController] 和 [Route] 属性来配置路由和 API 预处理逻辑。

为了快速测试这个 API,我们在构造函数中添加了两个待办事项,然后在 Get() 方法中返回了所有的待办事项。

运行项目,访问 https://localhost:5001/todo URL,即可看到以下结果:

步骤三:实现 POST API

接下来,我们将实现一个 POST API 来添加新的待办事项。在 TodoController.cs 文件中添加以下代码:

在这个代码中,我们定义了一个名为 Post() 的方法,使用了 [HttpPost] 属性来表示这是一个处理 HTTP POST 请求的方法。通过 [FromBody] 属性将请求数据反序列化为 TodoItem 类,然后将其添加到 _items 列表中。

最后,我们使用 CreatedAtAction() 方法返回 HTTP 201 Created 状态码和新添加的待办事项。使用 nameof(Get) 来指定返回的 URL,这里使用了 GET API 的路由和参数。

现在运行项目,在使用 POSTman 等工具向 https://localhost:5001/todo URL 发送 HTTP POST 请求,请求数据应为:

然后将会得到以下响应:

步骤四:实现 PUT API

在 RESTful API 中,PUT 请求用于更新特定的资源。在 TodoController.cs 文件中添加以下代码:

这里定义了名为 Put() 的方法,使用了 [HttpPut] 属性来表示这是一个处理 HTTP PUT 请求的方法,并且通过 {id} 参数来获取待更新的资源 ID。

在方法中,我们先使用 _items.FirstOrDefault() 方法查询指定 ID 的待办事项,如果未找到,则返回 HTTP 404 Not Found 响应。如果找到了,则根据请求数据更新待办事项的名称和状态,并返回 HTTP 204 No Content 响应。

使用 POSTman 等工具向 https://localhost:5001/todo/1 URL 发送 HTTP PUT 请求,请求数据应为:

然后将会得到 HTTP 204 No Content 响应。

步骤五:实现 DELETE API

在 RESTful API 中,DELETE 请求用于删除特定的资源。在 TodoController.cs 文件中添加以下代码:

这里定义了名为 Delete() 的方法,使用了 [HttpDelete] 属性来表示这是一个处理 HTTP DELETE 请求的方法,并且通过 {id} 参数来获取待删除的资源 ID。

在方法中,我们先使用 _items.FirstOrDefault() 方法查询指定 ID 的待办事项,如果未找到,则返回 HTTP 404 Not Found 响应。如果找到了,则将其从 _items 列表中删除,并返回 HTTP 204 No Content 响应。

使用 POSTman 等工具向 https://localhost:5001/todo/1 URL 发送 HTTP DELETE 请求,然后将会得到 HTTP 204 No Content 响应。

结束语

至此,我们已经完成了在 .NET Core Web API 中实现 RESTful API 的操作。在这个过程中,我们使用了 .NET Core 中的 ASP.NET Core Web API 框架,并实现了常用的 HTTP 动词,如 GET、POST、PUT 和 DELETE,以及处理请求数据和返回数据的实现。

如果您对 .NET Core Web API 中实现 RESTful API 还有其他的问题或疑问,欢迎在下面的评论中提出或联系我们。希望这篇文章可以帮助您更好地了解和学习 .NET Core Web API 和 RESTful API 的相关知识。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67cd738ae46428fe9e702f94