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

PC 端和手机端页面字段和数据格式一致的情况下,能否共用一套接口?

  •  
  •   Dosenf · 305 天前 · 1924 次点击
    这是一个创建于 305 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近遇到这个问题,原来的后端写了 pc 端一套接口手机端一套接口,每次调整都要做两次工作
    20 条回复    2024-01-24 11:28:30 +08:00
    Zorro825
        1
    Zorro825  
       305 天前
    可以呀
    suweia
        2
    suweia  
       305 天前
    起初为啥要写两套
    Dosenf
        3
    Dosenf  
    OP
       305 天前
    @suweia 一开始两个端都设计好了但是没有开发移动端,结果后端硬是写了两套
    Hancock
        4
    Hancock  
       305 天前
    我们这边 PC/Mobile/APP 展示内容如果一致都是通用的接口,方便维护,只有个别接口使用 version+platform 进行控制返回
    wu67
        5
    wu67  
       305 天前
    一般通用, 多客户端公用, 有特别需求导致数据结构需求不一样的再重新写, 或者忙不过来直接给够数据让客户端自己组装都行
    Dosenf
        6
    Dosenf  
    OP
       305 天前
    @Hancock
    @wu67
    現在的前端什麼問題都丟給後端,自己都不組裝,搞得後端整天給前端打工
    jones2000
        7
    jones2000  
       305 天前
    分 2 套是对的, 如果是一套,改了接口, 所有平台都要测试, 如果有测试部门就无所谓了, 出现 bug 的概率更高
    yueban5521
        8
    yueban5521  
       305 天前
    @jones2000 理解精辟
    HanSonJ
        9
    HanSonJ  
       305 天前   ❤️ 1
    ```
    func show() {
    return xxx
    }

    func pcShow() {
    return show()
    }

    func mobileShow() {
    return show()
    }
    ```
    ColdBird
        10
    ColdBird  
       305 天前
    可通用就通用,通用不了再拆,维护多份成本太高
    renmu
        11
    renmu  
       305 天前 via Android
    @jones2000 只要接口测试通过就行了,bug 和哪个平台调用有什么关系?倒不如说一套接口容易维护多了
    heftyMan
        12
    heftyMan  
       305 天前
    完全可以,大不了返回冗余多一点。实在不行传参判断
    Ashore
        13
    Ashore  
       305 天前
    @HanSonJ 真实
    ksc010
        14
    ksc010  
       305 天前
    @jones2000 接口参数格式都修改了 不应该增加版本号吗?
    user9121
        15
    user9121  
       305 天前
    可以同一个实现.用来两个不同的地址.
    这样如果后边要拆,前端不用动.
    wudaye
        16
    wudaye  
       305 天前
    代码可以用同一套,http 接口定义要分开
    crazyweeds
        17
    crazyweeds  
       305 天前   ❤️ 1
    建议不要一刀切,代码层面抽取公共模块,然后启动两个服务引用公共模块即可,如果后续调整,心智成本比较低,互不影响。也解决了初期问题。
    jones2000
        18
    jones2000  
       305 天前
    @ksc010 有几个后台是增加版本号的。理想和现实是有差距的。最后就变成一堆屎,PC 端,移动端各种判断一大堆,根本就没人改的动。
    blackhorse
        19
    blackhorse  
       305 天前
    业务复杂的话可以考虑加个中间层(BFF)
    reter
        20
    reter  
       305 天前
    近期在看 HTMX 。 觉得里面的思想很有意思。

    你的接口是专门为页面服务的吗?如果是,那就是页面特定的接口,接口的设计应该跟着页面走,失去了通用性,JSON RPC 是最合适的

    如果你的接口是通用的,不需要服务特定的页面。那就用可以用 REST 风格去设计,不用考虑是谁消费接口,最大的满足通用性
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2684 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:24 · PVG 13:24 · LAX 21:24 · JFK 00:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.