介绍
RESTful API 是一种与客户端/服务器通信的架构风格,它使用 HTTP 请求来访问和操作资源。在现代的网络应用程序中,RESTful API 已成为了许多应用程序的标准模型。在本文中,我们将学习如何在.NET Core 中创建一个完整的 RESTful API,并深入研究它的组成部分和最佳实践。
环境和工具
- .NET Core SDK (3.1 或更新)
- Visual Studio Code
- Docker
创建项目
首先,我们需要创建一个.NET Core 项目作为我们的 RESTful API。在 Visual Studio Code 中,使用快捷键 Ctrl+Shift+P
或调用命令面板,选择 “.NET: New Project”,选择 Web API
模板。
之后,我们需要为项目命名并选择其保存位置。在项目创建后,我们可以运行调试服务器以测试我们的 API。使用以下命令即可启动服务器:
------ ---
之后就可以使用 http://localhost:5000
访问我们的应用程序,并通过浏览器中输入 http://localhost:5000/api/values
访问我们的 API 服务。但这里返回一个空的数组,因为我们没有实现任何路由操作。
实现路由
在 RESTful API 中,路由是最基本的操作。它指定了如何从客户端请求中解析出相应的资源和操作,以及如何将响应发回客户端。在 .NET Core 中,路由规则定义在控制器类中。
我们使用控制器类来定义路由,其中每个公共方法定义了一个可访问的端点。以下是一个简单的示例:
--------------- ----------------------- ------ ----- ---------------- - -------------- - ------- ------ -------- -------- ------ - ----- - --------- --------- -------- -- --------- ------ ------------------- ----- - ------ ------- - ----------------- ------ ------ ------- --- - ------ ----------- - -
这个控制器允许客户端使用 GET /values
访问所有的值,并使用 GET /values/{id}
访问这些值中的一个。在 HttpGet("{id}")
方法中,我们将 id
作为参数传递给方法以获取对应的值。
注意,在控制器中使用的 [ApiController]
属性和 [Route]
属性是 Microsoft.AspNetCore.Mvc 命名空间中的一部分。它们使 .NET Core 确定如何解析控制器类,以及如何创建在其中定义的路由。
请求和响应
在 RESTful API 中,请求和响应是无状态的。这意味着服务器不保存客户端的任何状态信息,每个请求都是独立的。
我们可以使用控制器类来处理请求,并使用 IActionResult 接口来构建响应。以下是一个简单的示例:
---------- ------ ------------- --------------- ------ ------ - -- ----------------------------- - ------ ------------- - --------------------- ------ ---------------------------- --- - -- - ------------- - - -- ------- -
在这个控制器方法中,我们使用 [FromBody]
特性来解析 HTTP 请求正文中的数据,并使用 BadRequest()
方法返回一个 400 错误响应,以指示客户端发送了一个空值。如果传递的值是非空的,我们将其添加到值数组中,并使用 CreatedAtAction
方法构建一个新的 201 响应,指向新值的端点。
数据存储
在实际的应用程序中,我们需要访问数据存储以保留数据。在 .NET Core 中,数据存储通常通过 Entity Framework Core 进行访问。
首先,我们将安装 Entity Framework Core 包:
------ --- ------- ------------------------------------
然后,我们将在控制器中处理值数组数据的插入和查询。在这个简单的 RESTful API 中,我们将使用 SQLite 数据库存储值。
我们创建包含单个 Value
属性的实体类:
------ ----- --------- - ------ --- -- - ---- ---- - ------ ------ ----- - ---- ---- - -
我们还将创建 DbContext 类,我们的控制器将使用它来查询和插入数据。
------ ----- ------------ - --------- - ------ ------------------------------------------- -------- - ------------- -- ------ ---------------- ---------- - ---- ---- - -
最后,我们需要在启动文件中注册 DbContext 和 SQLite 工厂。
--------------------------------------- -- ------------------- --------------------
实际上,我们需要使用 SQLite 数据库的任何其他配置都像普通的 .NET Core 应用程序一样。现在,我们可以访问数据库并使用示例代码中的方法操作数据了。
Docker
使用 Docker,我们可以在 Virtues 环境中移植和运行我们的应用程序。在本文中,我们将使用官方 .NET Core 镜像,并构建我们的应用程序镜像。
要在 Docker 中运行应用程序,我们需要创建 Dockerfile:
---- ------------------------------------- -- ----- ------- ---- ---- -------- - --- ------ ------- ---- - - --- ------ ----- -- ------- --- ------ ------- -- ------- -- --- ---- ---------------------------------------- ------- ---- ---- ------------ -------- - ---------- ---------- ------------
该文件定义了一个构建流程,用于构建应用程序并将其复制到最终容器镜像中。使用以下命令构建镜像:
------ ----- -- ----- -
之后,我们可以通过以下命令启动一个包含我们的应用程序的容器:
------ --- -- ------- ------ ----- -----
这将启动一个名为 myapp
的容器,并将其映射到本地端口 8080。现在,我们可以通过访问 http://localhost:8080/api/values
访问我们的应用程序了。
结论
RESTful API 是现代 Web 应用程序的重要组成部分。在.NET Core 中开发 RESTful API 不仅是可能的,而且是相对容易的。我们在本文中讨论了如何构建 RESTful API,并使用.NET Core 进行了演示。我们还研究了.NET Core 中的一些最佳实践,例如使用 Entity Framework Core 和 Docker 镜像。
尽管本文只涵盖了.NET Core 环境下的技术细节,但本文提供的指南是通用的,并适用于其他 Web 框架和编程环境。我希望这篇文章是有帮助的,并指导你通过.NET Core 构建你自己的RESTful API。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/671c7b269babaf620fb0f590