今天跟后端联调一个查询的接口。 搜索条件并不是必填,都是可选的,于是跟后端说,不选的筛选条件就不传了。刚开始也答应了。
联调的时候,接口一直报缺少查询条件,也没说缺少什么,于是就问后端怎么回事。 后端刚开始说,我 swagger 上测的没问题,肯定是你代码有问题。 然后就发现所有的条件都是必填,问后端怎么回事,他说,那你把所有未填的筛选条件都赋个 0 传过来呀,不传肯定报错了。
当时我就懵逼了,但无奈说不动,只能改,我把所有筛选条件加了个全部,值是 0,但是产品找过来说,不能有全部这个筛选条件,还把我哔哔了一顿,有种夹在载中间不好做人的感觉。
于是再次找后端商量怎么做,这次他直接说,后端做不了,”代码都写好了,你让我怎么改?“ 我说不是很懂你代码,或许加个默认值之类的呢? 过了一会儿,后端大佬说:”不行,阿里规范不允许给默认值。“(我们不是阿里,只是大家都比较推崇规范不是么)
我很懵逼,怎么就没法设置参数可选了呢,这个不是很常见的情况么。 因为这个事情昨天耽搁了一下午,心累。
1
zhangqilin 2019-02-28 09:43:32 +08:00
后端刚开始说,我 swagger 上测的没问题,肯定是你代码有问题。
这么说就没法合作了 我是后端 我反正没说过这种话 遇见问题我还会要个参数然后自己测一遍 |
2
zhangqilin 2019-02-28 09:44:37 +08:00
“后端刚开始说,我 swagger 上测的没问题,肯定是你代码有问题。”(引用上文)
这么说就没法合作了 我是后端 我反正没说过这种话 遇见问题我还会要个参数然后自己测一遍 |
3
liunian1004 2019-02-28 09:45:18 +08:00 via iPhone
典型的后端水平菜,代码扩展差,条件耦合在一起就说做不了。
|
4
zhazi 2019-02-28 09:45:42 +08:00 via Android
阿里规范你让他去阿里写代码去,require false 按照 restful 风格写接口的话 这个搜索接口应该是 get 请求 本身就应该支持不传值搜索
|
5
sm0king OP @zhangqilin 在我们这里,经常听到,一般情况下联调出问题的时候都会。
|
6
zdt3476 2019-02-28 09:47:42 +08:00
不是偷懒就是菜。。。
|
7
sm0king OP |
8
yylucifer 2019-02-28 09:50:19 +08:00
应该是可以得
serialize 和 deserialize 可以设置些选项之类的; 还有可能就是 validation 直接设置的全必填。 |
9
liunian1004 2019-02-28 09:53:28 +08:00 via iPhone
口头说没有用,留下截图发给产品,后端自己说实现不了,你找他去。
|
10
ob 2019-02-28 09:55:11 +08:00 via Android
目测后端 java
|
11
ob 2019-02-28 09:55:49 +08:00 via Android
加上 require=false
|
12
maemual 2019-02-28 09:55:53 +08:00
后端菜,就是这么简单。
|
13
learnshare 2019-02-28 10:00:34 +08:00 2
不是做不到,也不是不符合规范
是懒,而且内心严重排斥一切非自我的东西 |
14
Shynoob 2019-02-28 10:05:26 +08:00
强硬一点
|
15
mandy0119 2019-02-28 10:08:50 +08:00
。。。java 常用的后端框架也能实现参数默认值啊。。。
|
16
CFO 2019-02-28 10:10:31 +08:00 via Android
required = false,defaultValue = 0
我是后端 支持你怼回去 |
17
liuml 2019-02-28 10:11:16 +08:00
很显然是后端问题,后端不配合你开发工作,然后楼主也要反思下自己沟通方面是不是存在问题,如果好好沟通都没有效果的话,那你可以上报领导了!
|
18
whypool 2019-02-28 10:11:51 +08:00
后端懒,代码没扩展性
请求用实体对象去接收,缺少字段就报错,如果需求有变,字段的增删,后端改到哭,自己挖的坑,自己跳 |
19
real3cho 2019-02-28 10:13:19 +08:00
什么叫”代码都写好了,你让我怎么改?“
又不是不可逆操作,默认参数都实现不了,算哪门子大佬。 |
20
ghostg00 2019-02-28 10:14:04 +08:00
这么简单的东西 就是后端菜 再不就是 后端不想改
|
21
triptipstop 2019-02-28 10:16:26 +08:00 2
我倒是很希望 用上不上的参数 就别传给我了
可是 很多前端 非要传个空值给我 说懒得做判断? 是这回事儿吗? |
22
yanqing07 2019-02-28 10:21:09 +08:00
不给默认值,然后要你全部给个 0,那和给默认值有什么区别。
这时候肯定叫上产品一起讨论啊,不要自己一个去的。 前后端都是为这个产品(不是指人)服务的,不符合需求肯定是要改的。大家在商量下才能做出产品,那有各做的各的。而且,做完不能改的情况一般是这个接口很多不同端在用,才可能没法改。但是,肯定有折衷方案,例如,在这接口基础上扩展一个 |
23
Malthael 2019-02-28 10:37:10 +08:00
后端就他一个吗?不要怂,怼死他
|
24
v2chou 2019-02-28 10:46:03 +08:00
后端这么叼? 怼死他,还代码都写好了,你让我怎么改,
|
25
metabot 2019-02-28 10:48:36 +08:00 via Android
换 GraphQL 皆大欢喜🙈
|
26
tongz 2019-02-28 10:52:32 +08:00
传什么参数怎么传这种问题一般是谁嗓门大谁说了算
|
27
Vegetable 2019-02-28 10:59:42 +08:00
叹为观止...
我决定去找一下他说的不能设置默认值这个规范的出处,并顺便找找有没有说怎么处理空值. |
28
Cbdy 2019-02-28 11:01:53 +08:00 2
我有的时候看一些后端程序员的代码,会想:天呐,写这个接口的是羊驼吗?
|
29
Damon4V 2019-02-28 11:02:53 +08:00
后端自己学起来,这样就可以直接怼回去:“我来写,你滚蛋”;
|
30
karllynn 2019-02-28 11:08:43 +08:00
为啥不能设置默认值,什么见鬼的规范,文档写清楚不就完了=,=
|
31
af463419014 2019-02-28 11:27:08 +08:00
这个后端不是懒就是菜,欺负新人还没人品
|
32
Hieast 2019-02-28 11:33:13 +08:00 via Android
可选的参数应该后端实现默认值,嗯,我是后端。
不过我认为前端也应该实现一套,以应付产品。 |
33
zwh2698 2019-02-28 11:35:18 +08:00 via Android
这个问题是一个设计哲学问题,首先说为什么阿里不提供默认值,因为在无状态,可重入的时候,后端提供默认似乎就是成了有状态。其次 所以函数要设计功能是原子正交,如果参数带上变化可以获取相应的计算结果,那么一定会使用参数,而不会内部使用默认值。
针对这个问题,我其实不明白是后台不支持部分参数带有默认值,还是怎么的?如果是这样,那也至少要符合业务需要,所以代码原则都是为产品服务的,代价最少,效果最好,这个代价包含开发维护运维等。 另外我觉得你们就是一个沟通问题,你发这个贴,你们还是没有沟通,没有多少结果,重要的心平气和的喊上你的主管,你和他,以及他的主管,大家把这个事摊开说,约定清楚了,以后就不会扯皮。重要的是建立规则和优化规则。 |
34
mejee 2019-02-28 12:14:46 +08:00 via Android
后端一般都可以很简单的实现默认值。问题就在于你们怎么约定的,按约定来
|
35
Enix 2019-02-28 12:15:13 +08:00 via iPhone
缺个能定规范的领导
|
36
rochek 2019-02-28 12:58:41 +08:00
后端开发一枚
接口没有文档么。 一般来说,前端在调接口开发的流程,一般来说。 首先后端写代码,单元测试通过,接口文档写好,给前端,前端去写调用。 照着接口文档写,后端没正确返回是后端的问题,你自己没看明白是前端的问题。 职责很明确的。 |
37
wolfie 2019-02-28 13:17:59 +08:00
『他说,那你把所有未填的筛选条件都赋个 0 传过来呀』还有这么干的?
|
38
mxy940127 2019-02-28 13:24:10 +08:00
不用想了 不是后端水平太菜 就是太懒
|
39
v2epS 2019-02-28 13:48:57 +08:00
后端问题~参数可以缺省很正常需求
|
40
wysnylc 2019-02-28 14:09:11 +08:00
后端彩笔
|
41
10Buns 2019-02-28 14:29:45 +08:00
后端开了,我来和你合作哈哈哈
|
42
183387594 2019-02-28 14:48:53 +08:00
为啥没后端吐槽的 ,我们客户端传 空 传 0 还传字符 'null' 我都惯着他
|
43
fareware 2019-02-28 16:30:23 +08:00
我写的 bug 不可能有问题!
|
44
xiaoxinxiaobai 2019-02-28 16:44:50 +08:00 via Android
首先你不要改产品设计,可以自己构造请求嘛,可以把全部参数传过去,空值就好,总有办法解决,再者就是沟通嘛,大家都说了后端不是懒就是水平不行,或者他沟通也不行,被人怼有 bug 难免有情绪吧
|
45
sonyxperia 2019-02-28 16:48:30 +08:00
垃圾后端,建议打一顿
|
46
dmjob2015222 2019-02-28 18:05:44 +08:00
拉出去,一顿胖揍,问题圆满解决!
|
47
scnace 2019-02-28 18:11:43 +08:00 via Android
这个简单啊!把后端的 leader 后端 你自己的 leader 产品拉一个群 把事情(和 curl )发出来 @一下 leader 就可以了
|
48
hcy1996 2019-02-28 18:14:47 +08:00
一个小建议 前端也可以适当学学后端 不然听他忽悠你还不能反驳他
|
49
limuyan44 2019-02-28 18:15:09 +08:00 via Android
有可能是真的菜。。
|
50
Yarnus 2019-02-28 22:12:03 +08:00
不是偷懒就是菜...
|
51
zj9495 2019-02-28 22:17:51 +08:00
又懒又菜
|
52
981764793 2019-03-01 00:07:42 +08:00 via Android
我做 android 的时候接口有问题出现多了都说你把代码打开我看看。。。现在做后端,出问题都说 url 发来,我自己慢慢看会
|
53
q8164305 2019-03-01 00:15:25 +08:00 via Android
还是自己学点后端的,很多后端不仅菜而且脾气还大,跟他们沟通的时间,代码都看完了
|
54
rob001 2019-03-01 01:45:37 +08:00
后端应该是能处理的,前端放 0 和后端放 0 都可以,按道理是后端的锅,无参数则放 0 这件事真要做的话,也应该是后端来做;
|
55
jssyxzy 2019-03-01 02:05:11 +08:00
神 tm 阿里规范。
这种东西参考就是了,死扣的明显就是新手,半吊子。 |
57
NicholasYX 2019-03-01 08:25:33 +08:00 via iPhone
后端不是菜就是懒
|
58
xuanbg 2019-03-01 08:30:04 +08:00 1
@af463419014 你错了,这个后端是又懒又菜,还极端不负责任!
没有条件传 0 ? 0 就不能是条件??真到业务就是要筛选 0 的时候就傻逼了。。。都 9102 年了,还有人以为 null 是个没用的东西吗? |
59
vindurriel 2019-03-01 08:30:39 +08:00 via iPhone
如果会用 swagger 的话 自己调不就好了 不用沟通
|
61
Outshine 2019-03-01 09:19:53 +08:00
前端设置默认值,如果后期要该默认值 app 岂不是还要更新?
|
62
xianxiaobo 2019-03-01 09:21:58 +08:00
这个虽然是后端态度不好,但是前端确实是可以做的,产品说不能有全部,假设是一个下拉框,那就是必填?如果是多选框,没选就传 0,选了就传选好了的 ID,也有可能是我没理解楼主意思。
|
63
guixiexiezou 2019-03-01 09:38:49 +08:00
我是后端,这后端确实问题很大。一般情况下不传值都会默认一个值的
|
64
southsala 2019-03-01 11:31:22 +08:00
后端做了必传判断,让他改成可选就完了,就是懒
|