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

接口设计请教

  •  
  •   reid2017 · 45 天前 · 1816 次点击
    这是一个创建于 45 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前端 app 里有三个业务开关 true/false,三个开关对应的业务是相互独立不关联的,而且都在同一个设置页面,对应于数据库同一张表里的三个字段,那么在设计修改接口时,是三个开关各设计一个接口,or 只设计一个接口( 传参方式用 JSON request body )?

    目前是各开关一个独立的接口,感觉有点冗余。。
    18 回复  |  直到 2019-07-30 00:20:35 +08:00
        1
    rain0002009   45 天前
    像极了我们的后端,获得超级管理员数量,管理员数量,和编辑数量 竟然是 3 个接口
        2
    luckylo   45 天前 via Android
    同一个业务场景,web(pc 浏览器),wap ,app 会写三套接口,你能理解?
        3
    cccssss   45 天前
    @luckylo 重点老板还觉着这种人干活出活。一直有功能开发出来,而三端复用 api 的人整天无所事事?
        4
    ffeii   45 天前
    我觉得都可以,都合理
        5
    micean   45 天前
    很正常,每个接口尽量做好一件事而不是只为了满足前端的需求
        6
    irvinghua   45 天前   ♥ 1
    肯定是一个接口干完这个事情优啊。。而且你这表结构设计也不合理,字段应该设计成:id,switch_name,switch_status(枚举类别 true/false) ,一个开关状态对应一条记录,而不是新增一个开关,就加一个字段。如果需求频繁改,你这表结构字段频繁变动,sql 也频繁变,ORM 映射成实体类也频繁变,这不累死?
        7
    Caballarii   45 天前
    rest 的缺点就是这样,graphql 欢迎你
        8
    jiekii   45 天前
    设计个 API 这么纠结 >_>
        9
    rainbirda   45 天前 via Android
    感觉没啥毛病啊 单一职责 而且以后每个开关后台有业务的话 改一个开关不至于影响其他的
        10
    yuankui   44 天前
    现在的 web 接口,就是太灵活,一个东西有很多种解,这样才会早餐分歧。。
    啥时候,能出一个编程范式,可能一个东西,就只有一种实现,那么程序时间就可以解放了。

    甚至,编程机器人,也就不远了。。哈哈😄
        11
    zisway   44 天前   ♥ 1
    每个开关一条记录,一个接口根据唯一 key 获取开关的值。
        12
    a852695   44 天前
    遇到过同样的情况,比如说表单修改这些,都是直接将整个 form 传给后端更新掉。
        13
    reid2017   44 天前
    @irvinghua 谢谢,确实如你所说可能是表设计得不太好

    @a852695 是的,字符类型的修改我一般是 form/json 全部打包传参

    @yuankui 有点这个意思
        14
    progart   44 天前
    既然 三个开关对应的业务是相互独立不关联的
    那么 在可选择的情况下,当然是三个接口,互相独立,会更合理些,带来的就是接口维护联测工作量上升。
        15
    jackielin   44 天前
    很多情况下面 ui 是要考虑性能问题的,一次性提供一个接口能减少请求,提升性能,这种情况,要么加一个中间层做代理,要么后端就直接改成支持远程调用,比如可以通过一个接口指定要调用 a,b,c 三个 function
        16
    LeeSeoung   44 天前
    当前职责你觉得三个开关可以写在同一个接口,后面某些开关要求加上条件判断联动,你就知道为啥要拆成三个接口去写。。
        17
    alleinmeng   41 天前 via Android
    一个整形用低三位做开关变量,做与运算(位运算),判断是哪个开关开的,然后使用策略模式针对不同状态采用不同策略
        18
    hangszhang   24 天前
    这是 restful 的缺点
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2129 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 14:37 · PVG 22:37 · LAX 07:37 · JFK 10:37
    ♥ Do have faith in what you're doing.