前后端分离后,即使前后端相互不交流怎么方便交互呢?

本文介绍了在前后端分离的开发模式下,如何通过统一的接口和数据格式实现高效交互。重点讲解了使用Spring、Springmvc、mybatis和Restful风格构建的统一结果类ResultInfo,该类包含状态码、错误信息和数据字段,便于前后端解耦。通过示例展示了后端如何返回JSON数据,以及前端如何解析并利用这些数据进行操作,确保即使双方不直接交流也能顺利协同工作。

前后端分离后,即使前后端相互不交流,不了解怎么方便交互呢?

这里就需要一些规范了,包括统一的接口,统一的javabean等等,这些 都需要公司的架构师设计,如下我介绍一种公司常用的方式(重要)!!

统一结果类
下面用到了vue,ElementUI,Spring,Springmvc,mybatis,Restful风格

//通用返回结果,服务端响应的数据最终都会封装成此对象
//导入统一结果的类
@Data
public class ResultInfo implements Serializable {
    private Integer code; //编码:1成功,0和其它数字为失败
    private String msg; //错误信息
    private Object data; //数据

    //成功结果
    public static ResultInfo success(Object object) {
        ResultInfo resultInfo = new ResultInfo();
        resultInfo.data = object;
        resultInfo.code = 1;
        return resultInfo;
    }

    //失败结果
    public static ResultInfo error(String msg) {
        ResultInfo resultInfo = new ResultInfo();
        resultInfo.msg = msg;
        resultInfo.code = 0;
        return resultInfo;
    }
}

使用方法如下:

例如前端给后端发来一个ajax请求

        //统一的方法接口
       //根据number查询学生信息  /student/001
            findByNumber(number) {
                axios.get('/student/' + number).then(resp => {
                   //此处先省略!看后面
                })
            },

后端只需知道发来的url,通过如下代码查询完结果后,返回一个json格式

//这里使用了restful编程风格,这是公司的主流!!
@GetMapping("/student/{number}")
    public ResultInfo findByNumber(@PathVariable("number") String number){
        Student student = studentService.findByNumber(number);
        return ResultInfo.success(student);
    }
//JSON数据格式:
//{code: 1, msg: null, data: {number: "hm003", name: "王五", birthday: "1985-06-19", address: "上海"}}

那么前端可以不用管后端发送的啥,只需要看一下data,如果失败只需要看一下msg,(code=1成功,code=0失败)

student: {};   
findByNumber(number) {
                axios.get('/student/' + number).then(resp => {
                    if (resp.data.code == "1") {
                        this.student = resp.data.data;
                    }
                })
            }

这样是前后端统一规范,即使前端看不见后端的代码,后端看不见前端的代码也可以完成交互,非常方便
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前后端分离管理系统是一种将前端后端开发分离的系统架构模式,前后端通过接口相互调用,实现有效的隔离。以下是关于前后端分离管理系统的介绍、开发、应用等相关信息: ### 系统介绍 前后端分离管理系统在当今互联网时代具有重要意义。以基于Springboot + vue的宿舍管理系统为例,系统用户主要包含管理员、学生、宿管三类,整体设计基于前后端分离模式,通过接口实现前后端交互实现有效的隔离 [^1]。知识管理系统的信息化程度体现在将互联网与信息技术应用于经营与管理,使用网络信息化管理使信息管理更先进、更高效、更科学,信息交流更迅速。而传统的书本载体传播知识效率低下,数据易保存,查询、更新和维护困难,采用电子化存储方式的知识管理系统能带来很大改善 [^2]。企业OA管理系统随着计算机技术和网络普及,使用计算机管理相关信息成为必然,开发合适的系统可方便管理人员管理,提高工作和查询效率,更好地为人们服务 [^3]。 ### 系统开发 - **技术选型**:常见的后端框架有Springboot,前端框架有vue、Angular等。如宿舍管理系统、知识管理系统、企业OA管理系统均基于Springboot + vue开发;旅馆管理系统前端使用Angular^6.0.3框架,后端使用springboot1.5.14.RELEASE框架 [^1][^2][^3][^4]。 - **分层架构设计**:以学生干部管理系统为例,系统架构设计中,模型层与数据库或其他数据源对应,负责与数据库交互和数据操作,并将处理后的数据传输给控制器层;视图层通过网页等界面呈现数据,与用户交互并将输入传递给控制器层;控制器层则负责特定的职责和功能。分层架构可实现代码模块化,提高代码的可维护性与可重用性 [^5]。 - **异常处理**:以前后端分离的旅馆管理系统为例,前后端异常统一处理,前端在service中处理,后端在统一的异常处理类中处理,异常处理类可处理异常和校验异常 [^4]。 ### 系统应用 前后端分离管理系统应用广泛,涵盖宿舍管理、知识管理、企业OA管理、旅馆管理、学生干部管理等多个领域。在宿舍管理系统中,可方便管理员、学生和宿管对宿舍相关信息进行管理;知识管理系统有助于企业实现信息的电子化存储和高效管理;企业OA管理系统方便管理人员对企业相关信息进行管理;旅馆管理系统可实现对旅馆信息的有效管理;学生干部管理系统则可对学生干部相关信息进行管理 [^1][^2][^3][^4][^5]。 ### 代码示例 以下是一个简单的Spring Boot后端接口示例: ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("/hello") public String hello() { return "Hello, World!"; } } ``` 以下是一个简单的Vue前端组件示例: ```vue <template> <div> <h1>{{ message }}</h1> </div> </template> <script> export default { data() { return { message: 'Hello from Vue!' }; } }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皇家小黄

创作不易!!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值