当前位置: 首页 > 后端技术 > PHP

前后端分离的问题及解决方法

时间:2023-03-29 20:00:42 PHP

这几天项目的一些API出现了版本控制的问题,真是忙活了一阵子,因为项目使用了TP5的传统方式进行版本控制(版本在api目录下区分,请求路径决定使用)但是问题往往是项目用的是v2版本,但是后端新建了v3,前端不知道,所以我借此机会探索了一个比较实用的前后端分离问题和解决方案,并做整理。明显问题1.后端API的生产能力无法避免,无法满足供应。2、后台API有bug,需要修复。3.前后端通信方式不同导致API实现有偏差。前端没有通知,在showcase的时候发现了一个bug。问题一解决方案1.后端规范函数集、函数模块集,统一返回格式和方法,提高代码复用率,从而增加后端API生产能力。Problem2SolvedSolution1.API存在BUG,前端提出BUG,并设置修复周期,BUG等级,修复奖励记录。2、API从完成到正式使用有三天的内测期。内测期间,前端发现打赏记录BUG。3.前端以内测期以外的API出现BUG的次数为上限,超过则记录处罚。构建理想IO,即参数,返回数据格式等(半天)--后端思考实现可行性,调整IO(半天)--后端实现API(协商时间),锁定API版本(具体实现参考下面方案)问题4解决方案实现一个简单的消息系统(我们使用的是基于swoole实现的websocket,具体可以参考我的开源小框架)1.后端--API完成--与前端确认OK,则API锁定V1.0版本(自动将锁定情况记录到日志中)2.需求变更/其他变更--解锁API(自动通知前端,XXAPIversionisunlocked),不解锁不能提交成功--修改完成后更新API版本,重复步骤1即API锁定和版本更新实现方案概念API版本解锁:方法头每个API文件的表示版本号,而且每次修改都要修改版本号,也就是解锁。API版本升级:每个API文件的方法头都标明了版本号,每次修改都需要修改版本号大于原来的版本号,即版本升级。实现步骤1.所有的API都按照具体的模块进行分类,比如admin后台模块。在API目录下写入对应的API文件,或者区分如上图。2.记录下所有模块的API目录到脚本的路径,在Checkthesepaths随时提交3.写一个检查API的脚本,工作流程如下:提交时,钩子检查是否修改API文件中的API方法未解锁,即如果提交的文件是API目录下的API文件,如果文件的方法注释中的版本号与原函数一致,如果一致且功能内容不同,提交失败,提示4.如果提交的API文件版本大于原版本,前端会短信通知。如果提交成功,建议提交代码一共触发两个脚本,一个用于检查,一个用于录音(前端人员电话录音,API目录)。以上是粗略的描述。如有错误或更好的建议,欢迎留言反馈,谢谢。制作不易,请点击GitHub右上角Star支持,谢谢^_^基于swoole的实时消息通信框架,基于Fastadmin,集成了阿里云OSS、Redis、物流、SMS后台系统