如何使用 Java 构建了一个 RESTful API

阅读时长 8 分钟读完

RESTful API 是一种常用的 Web 开发模式,它使用 HTTP 协议来传输数据,让客户端可以通过标准的 HTTP 方法(如 GET、POST、PUT 和 DELETE)对服务器进行操作。在前后端分离的 Web 开发中,RESTful API 成为了数据通信的重要方式。本篇文章将介绍如何使用 Java 来构建一个 RESTful API。

1. 目录结构

建立一个 RESTful API 的目录结构通常可以参考以下方式:

-- -------------------- ---- -------
-----------
--- -------
--- ---
-   --- ----
-   -   --- ----
-   -   -   --- ----------------------
-   -   -       --- ------
-   -   -       --- ----------
-   -   -       --- -----
-   -   -       --- ----------
-   -   -       --- -------
-   -   --- ---------
-   -       --- ---------------
-   -       --- ----------
-   --- ----
-       --- ----
-       --- ---------
--- ---------
  • pom.xml:Maven 项目管理工具配置文件。
  • src/main/java:Java 代码文件夹,存放所有后端代码。
  • com.example.restfulapi:Java 包名,用于存放所有后端代码。
  • config:Java 包名,用于存放应用程序的配置代码。
  • controller:Java 包名,用于存放控制器代码。
  • model:Java 包名,用于存放数据模型代码。
  • repository:Java 包名,用于存放数据访问层(如数据库)代码。
  • service:Java 包名,用于存放业务逻辑代码。
  • src/main/resources:资源文件夹,存放配置文件和静态资源文件。
  • application.yml:应用程序的配置文件。
  • log4j2.xml:日志配置文件
  • src/test:测试文件夹,存放测试代码。
  • README.md:项目说明文档。

2. 使用 Spring Boot 开发 RESTful API

Spring Boot 是一个快速开发 Web 应用程序的框架,它封装了许多常用的框架和库,使得开发过程变得更加简单。下面将演示如何使用 Spring Boot 构建一个 RESTful API。

2.1 配置文件

首先,我们需要在 application.yml 中设置应用程序的配置信息,包括服务器端口号和数据库连接信息等,例如:

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

2.2 控制器

控制器是用来处理 API 请求的 Java 类,它们负责与前端进行通信,解析参数,并调用业务逻辑来生成响应。我们需要在 com.example.restfulapi.controller 包下新建一个 Java 类,例如:

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

上述代码通过 @RestController 注解声明了一个控制器类,并使用 @GetMapping@PostMapping@PutMapping@DeleteMapping 注解来定义 HTTP 请求的处理函数。在这个控制器中,我们依次实现了获取所有用户、创建用户、更新用户和删除用户四个 API 接口。

2.3 服务层

服务层包含了业务逻辑代码,在本例中,我们需要在 com.example.restfulapi.service 包下新建一个 Java 类来实现用户管理逻辑,例如:

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

2.4 数据访问层

数据访问层包含了访问数据库的代码。我们需要在 com.example.restfulapi.repository 包下新建一个 Java 接口,例如:

这个接口就是一个 JPA Repository,它通过继承 JpaRepository 泛型接口来自动继承了许多常用的数据库操作方法,比如 findAllgetOnefindByIdsavedeleteById 等方法。

2.5 数据模型

数据模型用于表示实体类,例如这里我们要模拟用户类,我们可以在 com.example.restfulapi.model 包下新建一个 Java 类,例如:

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

上述代码通过 @Entity@Table 注解表示这个类与数据库表 user 相对应,而 @Id@GeneratedValue@NotNull 等注解则用于定义表的主键、自动增长方式和非空字段。这个类还实现了 Serializable 接口,使得我们可以方便地将这个类序列化成 JSON 或 XML 格式。

2.6 启动应用

完成上述步骤后,我们可以启动这个应用了。通过执行以下命令即可启动应用:

命令执行成功后,应用将运行在默认端口 8080 上,此时我们可以通过浏览器来访问这个 API,例如访问 http://localhost:8080/api/users 就可以获取所有用户信息了。

3. 总结

本文主要介绍了如何使用 Java 和 Spring Boot 框架来构建一个 RESTful API,其中包括了控制器、服务层、数据访问层和数据模型部分的设计,而 application.yml 则用于配置应用程序的基本信息。通过学习本文,你可以了解到一个基本的 RESTful API 的结构和实现方式,帮助你进一步学习和开发。完整示例代码请参见我的 GitHub 代码库

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

纠错
反馈