V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
donggua997
V2EX  ›  程序员

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

  •  1
     
  •   donggua997 · 2023-07-31 11:02:13 +08:00 · 3887 次点击
    这是一个创建于 486 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如,需求是:可配置开发环境页面接口代理到后端同学本地。
    有没有好的解决方案,
    或者此类问题有没有不错的方案
    33 条回复    2023-07-31 23:08:50 +08:00
    lisongeee
        1
    lisongeee  
       2023-07-31 11:06:53 +08:00   ❤️ 20
    前后端都是一个人
    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
    xubeiyan
        7
    xubeiyan  
       2023-07-31 11:15:57 +08:00 via Android
    前端打 dev 包时是到后端 api ,打 prod 是到生产环境。不过这都太麻烦,直接后端 push 代码触发构建,直接发布到测试机上,前端连测试机 api 就行了
    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
    将整套流程自动化,交给机器,不要手动测试。端到端测试尽量避免。
    linzhe141
        19
    linzhe141  
       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   ·   实用小工具   ·   1249 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:24 · PVG 02:24 · LAX 10:24 · JFK 13:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.