在前端开发中,RESTful API 是一个非常重要的概念。在实现 Web 应用程序的同时,还需要构建 API,以便其他开发人员可以使用它们来获取应用程序的数据。使用 AspNetCore MVC,您可以创建非常容易使用的 RESTful API。在本文中,我们将通过一些示例代码和深度学习的内容来解释如何使用 AspNetCore MVC 构建 RESTful API 并进行单元测试。
什么是 RESTful API?
RESTful API 是一种使用 HTTP 请求来访问和操作 Web 资源的架构风格。它是一种轻量级的通信方式,可以在不同的客户端和服务器之间共享数据。RESTful API 通常返回 JSON 或 XML 格式的数据,以方便客户端获取和解析。
RESTful API 有几个基本属性:
- 使用 HTTP 请求进行操作。
- 操作通过 HTTP 方法实现:GET、POST、PUT、DELETE、PATCH 等。
- 操作针对资源。每个资源都有一个唯一的 URI,并对应于一个状态。
- 不保留应用程序状态。API 的每个请求都是独立的。
使用 AspNetCore MVC 构建 RESTful API
AspNetCore MVC 是一个用于构建 Web 应用程序和 Web API 的框架。通过 MVC 的模式,我们可以将代码分离为模型、视图和控制器。在构建 RESTful API 时,我们可以使用控制器和路由器来处理 HTTP 请求,并返回 JSON 格式的数据。
创建控制器和路由器
要创建 RESTful API,需要创建一个控制器并添加路由器。假设我们要创建一个“用户管理”API,我们需要一个用户控制器:
-- -------------------- ---- ------- ----- --------------------------- ----- ------------------------- --------------------------- --------------- ------ ----- --------------- - -------------- - ------- -------- --------------- ---------------- ------ ------------------------------- --------------- - --------------- - --------------- - --------- ------ ------------------------------- ----- - ------ ----------------------------- - ----------------- ------ ------------------ ------- --- - --- ---- - ------------------------ -- ----- -- ----- ------ ----------- ------ --------- - ---------- ------ ------------ --------------- ---- ----- - -------------------------- ------ ---------------------------- --- - -- - ------- -- ------ - ----------------- ------ ------------ ------- --- ---------- ---- ----- - -- --- -- -------- ------ ------------- ----------------------------- ------ ------------ - -------------------- ------ ------------ ---------- --- - --- ---- - ------------------------ -- ----- -- ----- ------ ----------- ----------------------------- ------ ------------ - -
在控制器中,我们定义了五个操作:
- Get:获取所有用户。
- Get/{id}:获取指定 ID 的用户。
- Post:添加新用户。
- Put/{id}:更新用户。
- Delete/{id}:删除用户。
我们使用 HTTP 方法 Get、Post、Put 和 Delete 来执行相应操作。对于每个操作,我们返回一个匿名类型对象。我们还为控制器添加了一个特性“ApiController”,这意味着该控制器只用于 Web API。
然后,我们需要在 ConfigureServices 方法中配置路由器:
public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddScoped<IUserRepository, UserRepository>(); }
我们使用 AddMvc 来配置 MVC 框架,并为控制器添加了一个客户端资源注入(DI)。我们使用 IUserRepository 接口和 UserRepository 作为示例数据源。
测试 RESTful API
我们可以使用 Postman 或其他 HTTP 客户端工具来测试 RESTful API,也可以使用单元测试来确保其正确性。
我们需要定义一个单元测试,以验证控制器返回预期结果。在测试前,我们需要使用 NuGet 作为测试文件添加 Microsoft.AspNetCore.Mvc.Testing 包,然后定义测试类和实现 Get 操作的单元测试:
-- -------------------- ---- ------- ----- ----------- ----- --------------------------- ----- ------------ ----- ----------------------- ----- --------------------------------- ----- ---------------- ----- ------ ------ ----- ------------------------------- - --------------------------------------------- - ------- -------- ---------- ------------ ------ -------------------------------------------------------------- -------- - ----------- - ------------------------------ - ------ ------ ----- ---- ------------------------------------------- - --- -------- - ----- ----------------------------------- ----------------------------------- --- -------------- - ----- ------------------------------------- --- ----- - ---------------------------------------------------------- ------------------------- - -
我们定义了名为 UsersControllerIntegrationTests 的测试类,它是 WebApplicationFactory<startup> 的实例。我们使用 HttpClient 来执行 GET 请求,然后验证响应是否正确而且是否返回了一些结果。
我们可以创建其他测试方法来覆盖控制器中的每个操作。
结论
在本文中,我们详细介绍了如何使用 AspNetCore MVC 构建 RESTful API 并进行单元测试。我们了解了 RESTful API 的基本概念,并创建了一个用户管理控制器,并使用了五个常用的操作。我们还定义了一个单元测试,以确保控制器按预期工作。在此基础上,我们可以构建更复杂的 API,以满足我们的应用程序需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670cc3635f551281025b967d