客户端接口对接,我那个气啊... - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Zach369
V2EX    API

客户端接口对接,我那个气啊...

  •  
  •   Zach369 2020-04-22 10:25:29 +08:00 6219 次点击
    这是一个创建于 2003 天前的主题,其中的信息可能已经有所发展或是发生改变。

    收藏夹列表:

    [ { "id": 2, "name": "我的资源收藏夹 1" }, { "id": 3, "name": "我的资源收藏夹 2" } ] 

    现在产品设计 加了个不限.....

    然后客户端 非得让我修改接口

    [ { "id": 0, "name": "不限" }, { "id": 2, "name": "的资源收藏夹 1" }, { "id": 3, "name": "我的资源收藏夹 2" } ] 

    就因为下拉 要多一个不限的选择.......

    你们现实中是怎么样的那?遇到过这样的问题吗?

    第 1 条附言    2020-04-22 20:40:55 +08:00

    各位大佬.我只是问问大家的意见... 没有别的意思.. 目前已经商量好了,以后这种事情.统一由后端来改. 来返回

    [ { "id": 0, "name": "不限" }, { "id": 2, "name": "我的资源收藏夹 1" }, { "id": 3, "name": "我的资源收藏夹 2" } ] 
    46 条回复    2020-04-22 23:15:35 +08:00
    SilencerL
        1
    SilencerL  
       2020-04-22 10:28:26 +08:00
    遇到过, 一般谁拳头硬就听谁的.
    不过我还是感觉这种需求放前端实现比较好.
    geshansuiyue
        2
    geshansuiyue  
       2020-04-22 10:32:29 +08:00
    积怨已久?
    shoaly
        3
    shoaly  
       2020-04-22 10:33:00 +08:00
    就现在后面这个 json 挺好, 毕竟 前端不用动, 后端只用多一个 item, 况且产品可能脑抽 还要改字,
    不限变成 默认,
    默认改成 收藏
    收藏改成我的收藏夹
    不能每次都升级客户端的
    sodulty
        4
    sodulty  
       2020-04-22 10:33:06 +08:00
    约定好第一个值是特殊的。许多场景不想新开接口,只能靠约定,缺点是维护成本高
    artikle
        5
    artikle  
       2020-04-22 10:34:06 +08:00
    这种一般是后端改的,因为要是返回的不限这种有变动 比如改名字或者去掉这个选项,后端修改发版成本比较小
    liuxey
        6
    liuxey  
       2020-04-22 10:35:15 +08:00
    像“全部”“不限”这类选项我觉得是 UI 组件的事情,但是具体还是要看谁更硬
    HongJay
        7
    HongJay  
       2020-04-22 10:36:30 +08:00   5
    为啥要写死在客户端
    kop1989
        8
    kop1989  
       2020-04-22 10:39:36 +08:00
    从整体角度上讲,服务器端加的成本更低,而且更通用。
    如果是客户端加的话就要涉及到特殊处理,其实会更麻烦。
    KyonLi
        9
    KyonLi  
       2020-04-22 10:48:34 +08:00
    我是能不麻烦后端就不麻烦,在前端分别请求每个分类里的内容然后合并展示,虽然分页加载很诡异但还是能凑合用的
    geekzhu
        10
    geekzhu  
       2020-04-22 10:55:00 +08:00
    @kop1989 #8 好奇问一句,这种情况下,服务端不用特殊处理吗?
    kop1989
        11
    kop1989  
       2020-04-22 11:16:37 +08:00
    @geekzhu 1 、无论在客户端还是服务器端加,在反过来数据提交的时候服务器端都要特殊处理。
    2 、其实楼主的这种情况对于服务器端而言不是“特殊处理”,而是多了一条数据。
    kop1989
        12
    kop1989  
       2020-04-22 11:20:06 +08:00
    @geekzhu 3 、这个“特殊数据”,其实是服务器端需要的。那么服务器端需要的就应该由服务器端提供。因为这组数据本身是服务器端返回的动态数据。否则如果客户端特殊处理,写死这个“特殊数据”,有差错责任在谁。
    ISSSSSSS
        13
    ISSSSSSS  
       2020-04-22 11:20:42 +08:00
    建议后端处理,这样更灵活。比如改个字什么的。
    mmrx
        14
    mmrx  
       2020-04-22 11:21:10 +08:00
    我是客户端
    这个事情其实哪端做都可以,这个时候就得看谁在群里说得看上去更有道理
    一般我都是“说得看上去更有道理”那个
    wolfie
        15
    wolfie  
       2020-04-22 11:22:03 +08:00
    在哪实现都一样,谁改谁王八。
    geekzhu
        16
    geekzhu  
       2020-04-22 11:22:45 +08:00
    @kop1989 #11
    1. 输出的特殊逻辑跟输入的特殊逻辑,不能同一而论吧
    2. 就像表面上来看,客户端也只是展示的时候多了一条数据
    xuarongla0000
        17
    xuarongla0000  
       2020-04-22 11:24:58 +08:00
    发帖的时间都可以改 10 个这种需求了
    kop1989
        18
    kop1989  
       2020-04-22 11:25:38 +08:00
    @geekzhu 哦抱歉,我审题的问题,我以为客户端还需要上传。
    不过如果不谈回传的问题的话,我个人认为还是服务器处理要合理一些。
    主要还是因为这组数据是动态返回,前端写死相当于就对这个动态返回的数据进行了“污染”。这种会在日后维护的时候造成麻烦。
    geekzhu
        19
    geekzhu  
       2020-04-22 11:26:04 +08:00
    @kop1989 #12 3. 这句话有点不太理解,服务端展示的数据大部分都是客户端需要的,那是不是客户端自己保存就行了,服务端只负责统计就行
    geekzhu
        20
    geekzhu  
       2020-04-22 11:26:52 +08:00
    @kop1989 #18 嗯,其实这个谁加都可以,看谁成本低吧
    yaphets666
        21
    yaphets666  
       2020-04-22 11:28:07 +08:00   2
    我觉得 "全部" "不限" "所有" 这种字典值很蠢 不填不就是全部? 清空不就是全部? 还用单独搞一个这个出来?
    des
        22
    des  
       2020-04-22 11:29:24 +08:00
    @shoaly
    @liuxey
    @HongJay

    单选还行,多选就 gg 了
    newtype0092
        23
    newtype0092  
       2020-04-22 11:31:51 +08:00
    别气,客户端是要为更新发版妥协的,如果内嵌 H5 页面的可以直接让前端改,但如果是原生 UI 还是后端处理下吧,也算为了用户考虑。
    要怪就怪产品为什么早没想到要加个不限,这种又不是什么很特殊的逻辑。。。
    shoaly
        24
    shoaly  
       2020-04-22 11:36:02 +08:00
    @des 多选一样 也没 jj , 多选就是客户端 上传一个 id 数组 , 这个接口本身没毛病
    baozijun
        25
    baozijun  
       2020-04-22 11:36:52 +08:00
    做成数据字典模块,维护即可
    DamonLin
        26
    DamonLin  
       2020-04-22 11:37:24 +08:00 via Android
    建议后端给接口吧,客户端写死的话不方便后面扩展
    zhangchioulin
        27
    zhangchioulin  
       2020-04-22 11:38:01 +08:00
    这个要看产品规模,DAU 百万的产品我认为这个放在后端比较合适,因为这个量级的产品都有一套全面的后台管理系统,可以控制非常多的东西。比如我司的后台管理能精确到移动端某个活动 Label 的颜色。
    如果是产品目前 DAU 不大的话,后台系统不全面的话那就谁改起来简单谁来了。
    huage2580
        28
    huage2580  
       2020-04-22 11:38:39 +08:00
    我觉得没问题 啊,反正进收藏夹列表肯定带 id 给你吧。这样设计不挺好吗
    zpf124
        29
    zpf124  
       2020-04-22 11:38:56 +08:00
    我们一般是前端改, 因为许多类似这样的接口我们设计的时候都是不传筛选参数代表查询所有。

    所以这里一般前端做一个额外处理,选择全部时,不给后端发这个参数。
    zdt3476
        30
    zdt3476  
       2020-04-22 11:41:31 +08:00
    具体得看更新成本。如果产品后面要修改"不限"这两个字。肯定是放在更新成本低的那方最好
    otakustay
        31
    otakustay  
       2020-04-22 11:50:15 +08:00
    中间加一层 BFF,爱怎么改就怎么改,不修改后面的实际业务服务
    mendax92
        32
    mendax92  
       2020-04-22 11:52:21 +08:00
    其实这种东西,前后端改动都不大,我是做前端的,我也建议这种东西 放在后端。这样更灵活。就像平时开发的时候,接口数据提交只是很简单的一条数据,我建议 把数据封装成数组再提交,因为这种需求 谁也不能保证下一次 需求 不是 批量提交。
    suzic
        33
    suzic  
       2020-04-22 12:00:36 +08:00 via Android
    遇到过,既然客户端不想改,那就我改呗。反正也改动不大。
    chairuosen
        34
    chairuosen  
       2020-04-22 12:04:55 +08:00
    客户端这种不能随时发版的,业务逻辑要后移才能保证灵活性。
    senher
        35
    senher  
       2020-04-22 14:28:29 +08:00
    @mendax92 #32 很赞成
    Nostalgiaaaa
        36
    Nostalgiaaaa  
       2020-04-22 14:29:13 +08:00
    产品想改文案 "不限" 改成 "全部" 或者后来想做 abtest 。客户端发版等一周,后端十五分钟。从可拓展性来说后端改好一点。而且要是想记录用户操作啥的,打点也方便。
    speculatorA
        37
    speculatorA  
       2020-04-22 14:43:06 +08:00
    不还是多一条数据嘛。。
    你后端改到发版,也就 10 分钟的事情?
    客户端从改到发版,那是 1-3 天的事情。
    你在发这贴,你同事可能在其他位置吐槽你呢。233
    Alexander321
        38
    Alexander321  
       2020-04-22 16:07:52 +08:00
    这个...肯定后端改
    因为产品改了一次就能改无数次
    增加 item 修改 name..
    直接后端做成可配置的 大家都省事
    RJH
        39
    RJH  
       2020-04-22 16:30:28 +08:00
    @shoaly 服务端升级,重新发版更加伤啊。
    shoaly
        40
    shoaly  
       2020-04-22 16:35:07 +08:00
    @RJH 莫非你们公司觉得服务端升级会麻烦到自己人不好,
    还是提醒客户, 让客户去升级的方案更方便么?
    45HXlKzal6W56zUJ
        41
    45HXlKzal6W56zUJ  
       2020-04-22 17:51:27 +08:00
    @yaphets666 下拉跟填空不一样,下拉还得恢复成空
    Woood
        42
    Woood  
       2020-04-22 18:13:18 +08:00
    你是不是没有经历过苹果更新版本
    root777
        43
    root777  
       2020-04-22 18:45:02 +08:00
    你有这发帖的时间,还不如去改接口,这是多大脾气的人啊
    des
        44
    des  
       2020-04-22 18:52:11 +08:00
    @shoaly
    我说的多选的问题不是这个
    一开始是没有“不限”的,然后后端加了个不限
    你想想,选中“不限”的时候是不是应该吧其他的去掉?
    nicevar
        45
    nicevar  
       2020-04-22 20:56:10 +08:00
    客户端不是前端,上面一些人要搞清楚,这个问题肯定是后端改最简洁,没什么好气的,几分钟的事非得斗气还怎么合作。
    nl101531
        46
    nl101531  
       2020-04-22 23:15:35 +08:00 via iPhone
    问题不应该出在改需求嗯产品吗。。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2877 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 14:11 PVG 22:11 LAX 07:11 JFK 10:11
    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