有没有前后端联调的高效解决办法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
donggua997
V2EX    程序员

有没有前后端联调的高效解决办法

  •  1
     
  •   donggua997 2023-07-31 11:02:13 +08:00 4573 次点击
    这是一个创建于 810 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如,需求是:可配置开发环境页面接口代理到后端同学本地。
    有没有好的解决方案,
    或者此类问题有没有不错的方案
    33 条回复    2023-07-31 23:08:50 +08:00
    lisongeee
        1
    lisongeee  
       2023-07-31 11:06:53 +08:00   21
    前后端都是一个人
    linauror
        2
    linauror  
       2023-07-31 11:11:54 +08:00   1
    定义接口结构 -> 导出 swagger -> 生成 mock 接口 -> 前端调用 mock 接口,用 yapi 这样用过,用着还不错
    bitmin
        3
    bitmin  
       2023-07-31 11:12:56 +08:00
    我是让前端增加了切换接口请求 host 的按钮,可以切换到本地或者线上
    donggua997
        4
    donggua997  
    OP
       2023-07-31 11:13:47 +08:00
    @bitmin 这个按钮做在哪里了
    donggua997
        5
    donggua997  
    OP
       2023-07-31 11:14:50 +08:00
    我意思是不光联调 ,而且排查 bug ,或者梳理逻辑 ,如果调用本地 debug 不是方便很多吗
    estk
        6
    estk  
       2023-07-31 11:15:00 +08:00 via iPhone
    tRPC
    yule111222
        8
    yule111222  
       2023-07-31 11:16:26 +08:00
    1.让接口适配前端,后端自己对代码分层。核心业务与外部适配层分离,这样接口可以完全契合 UX 设计来做。
    2.文档提前生成好,前端一看就懂,用 yapi 之类的 mock 接口用用就可以开发
    3. 后端做好自测,最好是 TDD 自动化测试,保证交付质量,这样才连调得快

    我本人开发体验来看,接口交付后不太需要连体调,至少前端很少找我沟通
    brader
        9
    brader  
       2023-07-31 11:17:28 +08:00
    我不建议你这样搞,你们一定要有一个专业的测试环境,即使连到你本机,也是专门搭建一个版本发布固化的测试环境,而不是让他直连你编写中的开发代码,只会害他们、坑他们,我也是一个后端来的,我们不能自私的只图自己方便。测试环境你要觉得手动发布麻烦,你可以弄成代码推送就自动发布的
    AreYou0k
        10
    AreYou0k  
       2023-07-31 11:19:23 +08:00
    const baseURL = process.env.NODE_ENV !== 'production' ? localStorage.getItem('baseURL') : 'xxx 你的地址'
    这样的吗? 在 localStorage 加你要的接口地址, 哪个环境或者本地都行
    xudaxian520bsz
        11
    xudaxian520bsz  
       2023-07-31 11:26:29 +08:00
    IDEA ( apipost 插件) --> 一键导入 --> APIPost 平台(单元测试) --> 到处 json 文件 --> 导入到 RunnerGo (性能测试、场景测试(支持接口的调用链)) --> 将场景测试扔给前端
    GiantHard
        12
    GiantHard  
       2023-07-31 11:27:03 +08:00
    准备一个测试环境,前后端写好了代码就往测试部署,这样两边谁也不耽搁谁
    bitmin
        13
    bitmin  
       2023-07-31 11:27:25 +08:00
    @donggua997 看你自己的页面结构啊,如果是后台,正常右上角点击会展开一列按钮,app 可以写在设置页面里

    因为有按钮权限,所以也只有开发自己看得到

    #9 你场景搞错了,这样做不是方便前端让前端用,是方便后端,不需要前端专门发布一个接口走 localhost 的版本
    bitmin
        14
    bitmin  
       2023-07-31 11:28:33 +08:00
    #12 前后端都有部署到线上,但现在说的是本地调试的场景吧
    binge921
        15
    binge921  
       2023-07-31 11:29:40 +08:00
    我比较赞同一楼的说法
    zjsxwc
        16
    zjsxwc  
       2023-07-31 11:34:39 +08:00
    我以前接私活弄过一个类似的需求,
    前端 spa 单页应用本地开发,但接口调用后端开发环境的电脑,

    https://github.com/zjsxwc/golang-reverse-proxy-dev

    如果后端与前端不在同一个局域网,需要后端开个 frp 能外网穿透,让前端能外网访问后端接口。
    zhenly
        17
    zhenly  
       2023-07-31 11:38:24 +08:00
    前端开发连相对稳定的测试环境后端

    后端调试也是用相对稳定的测试环境前端,用 whistle 将 api 接口代理到本地服务
    thinkershare
        18
    thinkershare  
       2023-07-31 12:00:59 +08:00
    将整套流程自动化,交给机器,不要手动测试。端到端测试尽量避免。
    ooo4
        19
    ooo4  
       2023-07-31 13:10:24 +08:00
    一个人写
    xiangyuecn
        20
    xiangyuecn  
       2023-07-31 13:21:05 +08:00
    nginx
    laoyutang
        21
    laoyutang  
       2023-07-31 13:36:42 +08:00 via Android
    你是局域网不就好了,后端起个服务,你不是随便连
    yangjirun
        22
    yangjirun  
       2023-07-31 13:41:29 +08:00
    我对接的后端只有接口,没有文档,字段全靠猜
    LandCruiser
        23
    LandCruiser  
       2023-07-31 13:44:34 +08:00
    太简单了,部署一个测试环境不就行了?你想代理到哪个地址,改下 nginx.conf 就行了。也可以前端本地启动直接连后端开发本地启动的服务
    8355
        24
    8355  
       2023-07-31 13:59:53 +08:00
    内网 gitlab+jenkins 是吧
    你需要搜索 gitlab hook jenkins
    wxyrrcj
        25
    wxyrrcj  
       2023-07-31 14:38:32 +08:00
    自己写 全干工程师
    zerodli
        26
    zerodli  
       2023-07-31 15:05:04 +08:00
    apifox 比较好用,可以定义传入和接收数据格式,字段备注等等,做接口文档挺好
    bugmakerxs
        27
    bugmakerxs  
       2023-07-31 15:12:04 +08:00
    联调就是联调,有问题前端给你请求参数,你自己跑单测就好了。
    hotsymbol
        28
    hotsymbol  
       2023-07-31 16:31:00 +08:00
    @estk 这玩意不不开源
    christin
        29
    christin  
       2023-07-31 16:53:51 +08:00 via iPhone
    可以前端本地连测试环境,后端有改动就发布到测试环境,至少有一端和本地分离。如果两端全都本地,那有一个人不启动项目就开发不了了
    NICE20991231
        30
    NICE20991231  
       2023-07-31 17:15:12 +08:00
    难道是想在测试环境直接请求本地,方便后端调试?
    这种很简单,只要不是生产环境,就在页面显示一个悬浮的按钮,点击切换到本地请求链接...
    Elilili
        31
    Elilili  
       2023-07-31 18:08:15 +08:00
    流量染色
    pengtdyd
        32
    pengtdyd  
       2023-07-31 21:40:29 +08:00
    1 楼的这个回答带来了一些启示。会不会以后国内前后端又合并了,企业更倾向于招聘即会后端也会前端的人,这样会极大的节约了人力成本,而且还只用发一份工资。
    jones2000
        33
    jones2000  
       2023-07-31 23:08:50 +08:00
    现在不都是前后端分离独立开, 根据设计文档和接口数据格式,2 边同步开发。都不需要怎么联调。后台测试部门对每个接口写自动化测试用例,调试直接跑测试用例就可以调试了,根本不需要前端。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2624 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 13:13 PVG 21:13 LAX 06:13 JFK 09:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86