1. 开发模式我们项目开发时采用的是目前企业开发中最为主流的前后台分离开发方式。那么基于前后台分离开发的模式下我们后台开发者开发一个功能的具体流程如何呢如下图所示需求分析首先我们需要阅读需求文档分析需求理解需求。接口设计查询接口文档中关于需求的接口的定义包括地址参数响应数据类型等等前后台并行开发各自按照接口文档进行开发实现需求测试前后台开发完了各自按照接口文档进行测试前后段联调测试前段工程请求后端工程测试功能2. 交互规范在项目开发中会涉及到很多很多的接口这些接口涉及到增、删、改、查各种各样的操作如果这些操作给前端响应的结果的格式没有一个统一固定的格式想怎么返回就怎么返回那最终这个项目将变得难以维护和管理。因此呢 在前后端交互时所有的增、删、改、查的接口无论是请求成功还是失败均响应统一格式的结果。比如如下的结果code表示状态码1成功0失败。msg提示信息。data响应的数据。么对于上述的这三项数据我们可以在服务端定义一个统一响应结果的封装类 Result 最终我们只需要将这三项数据封装到Result这个类中就可以了。Result属于项目开发中涉及到的通用组件引入存放在qk-common这个模块中。创建包com.qk.common, Result类代码如下:package com.qk.common; import lombok.Data; /** * 后端统一返回结果 */ 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; } }3. API风格后端开发人员必须严格遵守提供的接口文档进行后端功能开发保障开发的功能可以和前端对接而在前后端进行交互的时候我们需要基于当前主流的REST风格的API接口进行交互。3.1 Restful介绍什么是REST风格呢?RESTRepresentational State Transfer表述性状态转换它是一种软件架构风格。传统URL风格如下http://localhost:8080/user/getById?id1 GET查询id为1的用户http://localhost:8080/user/saveUser POST新增用户http://localhost:8080/user/updateUser POST修改用户http://localhost:8080/user/deleteUser?id1 GET删除id为1的用户我们看到原始的传统URL呢定义比较复杂而且将资源的访问行为对外暴露出来了。而且对于开发人员来说每一个开发人员都有自己的命名习惯就拿根据id查询用户信息来说的不同的开发人员定义的路径可能是这样的getByIdselectByIdqueryByIdloadById... 。 每一个人都有自己的命名习惯如果都按照各自的习惯来一个项目组几十号或上百号人那最终开发出来的项目将会变得难以维护没有一个统一的标准。基于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动词(请求方式)来描述具体的操作。在REST风格的URL中通过四种请求方式来操作数据的增删改查。GET 查询POST 新增PUT 修改DELETE 删除我们看到如果是基于REST风格定义URLURL将会更加简洁、更加规范、更加优雅。注意事项REST是风格是约定方式约定不是规定可以打破描述模块的功能通常使用复数也就是加s的格式来描述表示此类资源而非单个资源。如users、emps、books…