如何使用 AspNetCore MVC 构建 RESTful API 并进行单元测试

阅读时长 7 分钟读完

在前端开发中,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,我们需要一个用户控制器:

-- -------------------- ---- -------
----- ---------------------------
----- -------------------------

---------------------------
---------------
------ ----- --------------- - --------------
-
    ------- -------- --------------- ----------------

    ------ ------------------------------- ---------------
    -
        --------------- - ---------------
    -

    ---------
    ------ ------------------------------- -----
    -
        ------ -----------------------------
    -

    -----------------
    ------ ------------------ ------- ---
    -
        --- ---- - ------------------------
        -- ----- -- -----
            ------ -----------
        ------ ---------
    -

    ----------
    ------ ------------ --------------- ---- -----
    -
        --------------------------
        ------ ---------------------------- --- - -- - ------- -- ------
    -

    -----------------
    ------ ------------ ------- --- ---------- ---- -----
    -
        -- --- -- --------
            ------ -------------
        -----------------------------
        ------ ------------
    -

    --------------------
    ------ ------------ ---------- ---
    -
        --- ---- - ------------------------
        -- ----- -- -----
            ------ -----------
        -----------------------------
        ------ ------------
    -
-

在控制器中,我们定义了五个操作:

  1. Get:获取所有用户。
  2. Get/{id}:获取指定 ID 的用户。
  3. Post:添加新用户。
  4. Put/{id}:更新用户。
  5. Delete/{id}:删除用户。

我们使用 HTTP 方法 Get、Post、Put 和 Delete 来执行相应操作。对于每个操作,我们返回一个匿名类型对象。我们还为控制器添加了一个特性“ApiController”,这意味着该控制器只用于 Web API。

然后,我们需要在 ConfigureServices 方法中配置路由器:

我们使用 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

纠错
反馈