开发规范与工程搭建

开发规范与工程搭建

2026年5月21日·#javawebai/后端基础Java/开发规范/Apifox/RESTful风格/Tlias·1196 字 6 分钟
浏览量加载中...
AI 摘要- DeepSeek

前后端分离开发规范、RESTful风格、Apifox工具与SpringBoot工程搭建

开发规范与工程搭建#

定义#

在 Tlias 智能学习辅助系统的实战开发中,首先需要建立统一的开发规范并完成基础工程搭建。这包括前后端分离开发模式、RESTful API 风格约定、接口测试工具的使用,以及 SpringBoot 工程的基础结构搭建。

开发规范#

前后端分离开发#

企业项目开发主要有两种模式:前后台混合开发和前后台分离开发。

前后台混合开发的缺点:

  • 沟通成本高:后台发现前端问题需找前端修改,再交回后台
  • 分工不明确:后台开发需同时写前端代码
  • 不便管理:所有代码在一个工程中
  • 难以维护:前端更新需要整个工程重新打包部署

前后台分离开发将工程分为前端工程和后端工程,前端交给专业前端人员,后端交给专业后端人员,双方通过接口文档约定数据格式。

前后端分离开发

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

后端开发流程

  1. 需求分析:阅读需求文档,分析需求
  2. 接口定义:查询接口文档中关于需求的接口定义(地址、参数、响应数据类型等)
  3. 前后台并行开发:各自按照接口文档进行开发
  4. 测试:各自按照接口文档进行测试
  5. 前后端联调测试:前端工程请求后端工程,测试功能

RESTful 风格#

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删除

注意事项:

  • REST 是风格、约定方式,约定不是规定,可以打破
  • 描述模块功能通常使用复数(加 s),表示此类资源而非单个资源。如:users、emps、books

Apifox 工具#

Apifox 是一款集成了 API 文档、API 调试、API Mock、API 测试的一体化协作平台。

在前后端并行开发时,由于浏览器只能发起 GET 请求,无法直接测试 POST、DELETE、PUT 等接口,需要借助 Apifox 等接口测试工具完成接口测试。

工程搭建#

创建 SpringBoot 工程#

引入 web 开发起步依赖、MyBatis、MySQL 驱动、Lombok。

数据库准备#

创建 tlias 数据库,准备 dept 部门表:

CREATE TABLE dept (
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT 'ID, 主键',
name varchar(10) NOT NULL UNIQUE COMMENT '部门名称',
create_time datetime DEFAULT NULL COMMENT '创建时间',
update_time datetime DEFAULT NULL COMMENT '修改时间'
) COMMENT '部门表';
INSERT INTO dept VALUES (1,'学工部','2023-09-25 09:47:40','2024-07-25 09:47:40'),
(2,'教研部','2023-09-25 09:47:40','2024-08-09 15:17:04'),
(3,'咨询部','2023-09-25 09:47:40','2024-07-30 21:26:24'),
(4,'就业部','2023-09-25 09:47:40','2024-07-25 09:47:40'),
(5,'人事部','2023-09-25 09:47:40','2024-07-25 09:47:40'),
(6,'行政部','2023-11-30 20:56:37','2024-07-30 20:56:37');

application.yml 配置#

spring:
application:
name: tlias-web-management
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/tlias
username: root
password: 1234
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

基础代码结构#

实体类 Dept:

package com.itheima.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Dept {
private Integer id;
private String name;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

统一响应结果 Result:

package com.itheima.pojo;
import lombok.Data;
import java.io.Serializable;
@Data
public class Result {
private Integer code; // 编码:1成功,0失败
private String msg; // 错误信息
private Object data; // 数据
public static Result success() {
Result result = new Result();
result.code = 1;
result.msg = "success";
return result;
}
public static Result success(Object object) {
Result result = new Result();
result.data = object;
result.code = 1;
result.msg = "success";
return result;
}
public static Result error(String msg) {
Result result = new Result();
result.msg = msg;
result.code = 0;
return result;
}
}

基础骨架类:

// DeptMapper
@Mapper
public interface DeptMapper {
}
// DeptService
public interface DeptService {
}
// DeptServiceImpl
@Service
public class DeptServiceImpl implements DeptService {
}
// DeptController
@RestController
public class DeptController {
}

常见场景#

  • 新项目启动时,首先确定前后端分离架构和接口规范
  • 使用 Apifox 管理 API 文档,前后端并行开发
  • 规范 RESTful 风格的 URL 设计,保证团队协作一致性

注意事项#

  • REST 是约定而非强制规范,特殊场景可打破
  • 资源路径建议使用复数形式(如 /depts)
  • 接口文档是前后端协作的核心契约,后端必须严格遵守
  • SpringBoot 工程中 Lombok 可简化实体类代码,减少样板代码

评论区

[ 标签 ]
# AI37# AI 编程2# AI工具1# AI绘图1# AI辅助开发2# Ajax7# Apifox1# AstrBot3# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# Cloudflare2# CloudFlare2# CloudFlare-ImgBed3# coc4# CSS10# DeepSeek6# deepseek2# DELETE1# Docker5# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML9# HTTP10# ImageManager1# Java23# java13# JavaScript11# JavaWeb113# JDBC7# JSON2# JUnit1# LangChain25# Linux4# Logback1# Maven17# Muse Spark1# Mybatis1# MyBatis18# MySQL45# MySql1# NapCat1# Node.js1# obsidian2# Obsidian5# OpenCode4# ORM1# PathVariable1# PicGo1# PyCharm1# Python70# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot37# SpringMVC5# SQL2# Streamlit5# Svelte2# TailwindCSS1# Telegram3# Tlias2# Vercel1# vscode2# Vue20# Waline3# Web3# WebDAV1# Web基础6# Web开发6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档10# 写作1# 函数2# 刷步数1# 前端52# 动态1# 动漫1# 包1# 单词2# 博客8# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 后端48# 图床6# 地图1# 备份2# 大模型1# 奇思妙想1# 存储1# 学习方法6# 学校1# 宝塔面板3# 宝宝10# 实战4# 对象1# 导航栏1# 工具2# 布局2# 开发1# 开发工具1# 开发规范1# 开心1# 异常处理1# 影视2# 微信1# 性能优化2# 总结1# 想法15# 感受1# 感悟11# 指南1# 提示词工程2# 插件5# 故障排除1# 效率工具2# 教程10# 数据分析9# 数据库27# 数据结构1# 文件操作2# 斩神1# 日常95# 日志框架1# 朋友圈1# 朱元璋1# 模块1# 模板1# 正则表达式2# 测试3# 游戏2# 爬虫7# 生活迁移1# 电影2# 电脑1# 碎碎念1# 视觉识别1# 类1# 类型注解1# 网络基础2# 网络教室1# 羊毛2# 脚本2# 脚本工具1# 自动化2# 蓝奏云1# 表单1# 订阅推荐2# 记录2# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载2# 运动1# 部署11# 部落冲突1# 配置1# 随机图1# 面向对象5# 音乐3# 音标1# 项目实战11# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]