国庆节10月1日
--


前后端分离开发规范、RESTful风格、Apifox工具与SpringBoot工程搭建
在 Tlias 智能学习辅助系统的实战开发中,首先需要建立统一的开发规范并完成基础工程搭建。这包括前后端分离开发模式、RESTful API 风格约定、接口测试工具的使用,以及 SpringBoot 工程的基础结构搭建。
企业项目开发主要有两种模式:前后台混合开发和前后台分离开发。
前后台混合开发的缺点:
前后台分离开发将工程分为前端工程和后端工程,前端交给专业前端人员,后端交给专业后端人员,双方通过接口文档约定数据格式。

后端开发功能的具体流程:

REST(Representational State Transfer),表述性状态转换,是一种软件架构风格。
传统 URL 风格:
http://localhost:8080/user/getById?id=1 — GET:查询 id 为 1 的用户http://localhost:8080/user/saveUser — POST:新增用户http://localhost:8080/user/updateUser — POST:修改用户http://localhost:8080/user/deleteUser?id=1 — GET:删除 id 为 1 的用户传统 URL 将资源访问行为暴露在外,且不同开发人员命名习惯各异(getById、selectById、queryById),难以统一维护。
基于 REST 风格 URL:
http://localhost:8080/users/1 — GET:查询 id 为 1 的用户http://localhost:8080/users — POST:新增用户http://localhost:8080/users — PUT:修改用户http://localhost:8080/users/1 — DELETE:删除 id 为 1 的用户核心原则:通过 URL 定位要操作的资源,通过 HTTP 动词(请求方式)来描述具体的操作。
| 请求方式 | 操作 |
|---|---|
| GET | 查询 |
| POST | 新增 |
| PUT | 修改 |
| DELETE | 删除 |
注意事项:
Apifox 是一款集成了 API 文档、API 调试、API Mock、API 测试的一体化协作平台。
在前后端并行开发时,由于浏览器只能发起 GET 请求,无法直接测试 POST、DELETE、PUT 等接口,需要借助 Apifox 等接口测试工具完成接口测试。
引入 web 开发起步依赖、MyBatis、MySQL 驱动、Lombok。
创建 tlias 数据库,准备 dept 部门表:
1CREATE TABLE dept (2 id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT 'ID, 主键',3 name varchar(10) NOT NULL UNIQUE COMMENT '部门名称',4 create_time datetime DEFAULT NULL COMMENT '创建时间',5 update_time datetime DEFAULT NULL COMMENT '修改时间'6) COMMENT '部门表';7
8INSERT INTO dept VALUES (1,'学工部','2023-09-25 09:47:40','2024-07-25 09:47:40'),9 (2,'教研部','2023-09-25 09:47:40','2024-08-09 15:17:04'),10 (3,'咨询部','2023-09-25 09:47:40','2024-07-30 21:26:24'),11 (4,'就业部','2023-09-25 09:47:40','2024-07-25 09:47:40'),12 (5,'人事部','2023-09-25 09:47:40','2024-07-25 09:47:40'),13 (6,'行政部','2023-11-30 20:56:37','2024-07-30 20:56:37');1spring:2 application:3 name: tlias-web-management4 datasource:5 driver-class-name: com.mysql.cj.jdbc.Driver6 url: jdbc:mysql://localhost:3306/tlias7 username: root8 password: 12349mybatis:10 configuration:11 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl实体类 Dept:
1package com.itheima.pojo;2
3import lombok.AllArgsConstructor;4import lombok.Data;5import lombok.NoArgsConstructor;6import java.time.LocalDateTime;7
8@Data9@NoArgsConstructor10@AllArgsConstructor11public class Dept {12 private Integer id;13 private String name;14 private LocalDateTime createTime;15 private LocalDateTime updateTime;16}统一响应结果 Result:
1package com.itheima.pojo;2
3import lombok.Data;4import java.io.Serializable;5
6@Data7public class Result {8 private Integer code; // 编码:1成功,0失败9 private String msg; // 错误信息10 private Object data; // 数据11
12 public static Result success() {13 Result result = new Result();14 result.code = 1;15 result.msg = "success";16 return result;17 }18
19 public static Result success(Object object) {20 Result result = new Result();21 result.data = object;22 result.code = 1;23 result.msg = "success";24 return result;25 }26
27 public static Result error(String msg) {28 Result result = new Result();29 result.msg = msg;30 result.code = 0;31 return result;32 }33}基础骨架类:
1// DeptMapper2@Mapper3public interface DeptMapper {4}5
6// DeptService7public interface DeptService {8}9
10// DeptServiceImpl11@Service12public class DeptServiceImpl implements DeptService {13}14
15// DeptController16@RestController17public class DeptController {18}/depts)如果你喜欢,那么欢迎来到我的世界!
了解更多暂未播放



"所有的相遇都是久别重逢。"—— 未知


