主管想用的接口输出
{
"status" : "错误码",
"error" : "错误消息",
......
}
楼主想用的接口输出
{
"errorCode": "错误码",
"errorMsg" : "错误消息",
......
}
我在想一个接口至于争吵一天吗?最后我妥协了,现在感觉好想离职,请问怎么破
首先非常感谢各位社友的回复和讨论,在看各位社友的评论中学到了很多东西,果然三人行必有我师焉!
社区有些社友可能认为这种接口争吵没啥意义,随便定义一个就行,但如果这个接口被几千人使用甚至被几万人使用,那就得对这个接口好好设计了。如果连自己都对自己提供的接口不保持敬畏,那就别指望用户对你提供的接口保持敬畏,对于用户的抱怨牢骚那只能全部接下。过去几年里很多用户对我们提供的接口出现过各种各样的抱怨(每个用户都有一套自己心目中的接口,就像社区内留言出现很多接口定义),如果接口提供方的接口与接口使用方心目中的接口不一样就会出现或多或少有抱怨和吐槽。为了尽量让用户用的爽,减少用户的抱怨,所以就和主管对接口进行了争吵(善意的争吵),至于想离职是其它方面的原因;
有些社友可能认为和主管争吵不太好,主管想做成什么样自己就做成什么样。但你真认为这种状态好吗?即使你照做了,你觉得主管认可你吗?在互联网环境下,得多与主管、同事讨论讨论问题,有些难解的问题就是在讨论中产出解决方案的。过去几年和主管同事争吵过无数次甚至拍桌子,差点打起来,但这种都是idea的碰撞,只有碰撞中才能产出好的idea,其实碰撞完后同事主管都会私下交流这个都是各自想法,不代表其他含义,不要往心里去。对于主管要你做啥你就做啥,那主管招你有何用,主管可以招任何一个人来替换你,这样你的自身竞争力在哪里。一个程序员要往高处发展,要学会自己去发现问题去解决问题,而不是等待主管安排问题,比如主管交给你一个手工线上部署任务(需要经常部署),结果你每次都可以手工无故障的部署完成,但这种结果是主管希望的吗,主管再找一个人也可以无故障的手工部署,但如果你把手工线上部署做成自动化工具一键部署,可以节约时间且无风险,这样在主管看来你就是不可替代,能自己对问题提出解决方案;
程序之美应该包含编程之美、接口之美和测试之美。如果有一段程序编程无规范、接口随便定义,无单测和功能测试,让你去接手这段代码,你会怎么想?所以还是对接口保持敬畏之心,多花点时间定义接口,少花点时间答疑和听用户的抱怨;
下面各出了很多社友的接口定义,可以供借鉴,排名不分先后,可以投票😄
{
"code": "错误码",
"message": "错误消息"
}
{
"errno" : "错误码",
"message" : "错误消息"
}
{
"status": "错误码",
"error": "错误消息"
}
{
"status": "错误码",
"msg": "错误消息"
}
{
"errKey": "错误码",
"errMsg": "错误消息"
}
{
"status": "错误码",
"error": "错误消息",
"errorCode": "错误码",
"errorMsg": "错误消息"
}
{
"statusCode": "错误码",
"statusMsg": "错误消息"
}
{
"error_code": "错误码",
"error_msg": "错误消息"
}
302
lincanbin 2019-03-19 19:19:40 +08:00
还是工作不饱和
|
303
jxgccaaron 2019-03-19 19:21:59 +08:00 via iPhone
{ "errors":"错误消息";}
就这样,完了 code 按 restful 来 |
304
mostkia 2019-03-19 19:23:33 +08:00
{"code":"200","msg":"........",......}这样可能比较好
一般没必要强调错误参数,返回的什么可能性都有,唯独错误率应该是低的,这是上线的接口的基本功。 所以在很少有错误发生的情况下,为其专门准备一个返回值位置,可能就有些多余,而且也不能从中反推出其他的可能状态,因为总会有其它的状态出现。 还有啊,每个人的想法都是不同的,在公司里面的话,就不能意气用事了,主管怎么说你就怎么做呗。做出来的东西又不是你自己的。不必纠结那么多,大家都是混口饭吃,都留一些情面嘛,好说话一些。 |
305
srx1982 2019-03-19 19:27:57 +08:00
code, msg 就完了,越少越好
这个真的不值得吵 |
306
srx1982 2019-03-19 19:28:50 +08:00
@fox0001 通用的 404 之类的还好说,有的时候根本不够用或者找不到合适的,还是要加个 status 之类的字段来判断到底什么错
|
309
psj1105 2019-03-19 19:40:34 +08:00
这个话题唯一有点价值的就是 V 友们互(各)相(自)学(站)习(队)了
|
310
liubaicai 2019-03-19 20:01:32 +08:00 via Android
吵架算什么,有本事去尬舞啊
|
311
oxygenliu 2019-03-19 20:09:15 +08:00 via iPhone
这也能吵?
|
312
Enochyun 2019-03-19 20:11:15 +08:00
为这点事情离职 不值得
|
313
simonv3ex 2019-03-19 20:27:33 +08:00
我听说过有公司吵架的罚 2 个人牵手一下午的,好像在 b 站上看到的来着[滑稽]
|
314
zhuzhibin 2019-03-19 20:30:24 +08:00 via iPhone
我更想听听楼主以及主管这样设计的各自的理由是什么???
|
315
ZehaiZhang 2019-03-19 20:32:26 +08:00
??? 315 楼了,所以为啥吵架?
|
316
pinews 2019-03-19 20:53:30 +08:00
在执行成功的时候,楼主的方式缺陷很大,具体事情具体分析,如果不去分析的话,主管的方案更具有普遍性
|
317
pinews 2019-03-19 21:05:15 +08:00
@HackerPainter
主管的方案里 status 只有两种状态,成功和失败,失败了就提示 errmsg 的内容,并不区分具体错误码。 错误码要来干什么,第一要准确定义错误,防止 msg 歧义,第二归类,错误码很多,第三,程序自动识别。 你都没说问题的背景是什么,不知道怎么评价。 |
318
exip 2019-03-19 21:09:43 +08:00 via Android
这个帖子囊括了一天的笑点.哈哈哈
|
319
Gota 2019-03-19 21:11:47 +08:00
比较喜欢 GraphQL 的返回格式:
``` json { "data": { ... }, "errors": [ ... ], "extensions": { ... } } ``` |
320
billlee 2019-03-19 21:29:50 +08:00
|
321
tourist2018 2019-03-19 21:32:07 +08:00
看不出这俩有啥区别,命名而已,要是我和别人对接接口,只要数据格式规定好,别的怎样我都没问题
这也能炒一天 感情公司找你上班这么浪费时间的? |
322
luckyswag 2019-03-19 21:37:19 +08:00
同情主管
|
323
sorshion 2019-03-19 21:39:45 +08:00
你们就没考虑到正常业务也需要 message 的嘛
{ status:true/false, // true 为正确业务,false 为错误业务 code: 1000,// 编码 msg: '' , // 正确时或错误时用户提示信息,与 code 对应,方便做文案映射 data:{} // 一定要为对象,不能为'',0,null 之类 } ----------------------------- 突然感觉如下的也合适 { code: 200,// 编码(假设 200~299 的为正常) msg: '' , // 正确时或错误时用户提示信息,与 code 对应,方便做文案映射 data:{} // 一定要为对象,不能为'',0,null 之类 } ----------------------------- 上面的感觉又变成了 http_code 了,直接 restful 得了,用 http_code 表示不同状态,code 表示业务状态 |
324
sorshion 2019-03-19 21:43:09 +08:00
@ryanking8215 你的方案比较赞同
|
325
feikeq 2019-03-19 21:49:31 +08:00 via iPhone
@AngryMagikarp 一样可以配置做国际化语言,我现在就是中英双语,枚举想要的本地化语言文件即可
|
326
hanxiV2EX 2019-03-19 22:05:30 +08:00 via Android
只要有规范文档,用哪种都行!别改来改去就行。这事没必要吵,浪费时间。只要给够钱,用拼音,用中文都行。
坐等主管来说:我就是那个主管。 |
327
OnionJuice 2019-03-19 22:06:05 +08:00
@luckyswag
+1,主管管不住人,还叫什么主管,变成前后端的传话小弟。 回楼主 这种返回格式不是一般都由主管定的吗?恕我直言,如果主管规定 { "1" : "错误码", "2" : "错误消息", ...... } 都可以。 说实话码农就是写代码的,标准是按照 leader 定的,各自一套这样的代码也是屎。 |
328
tt0411 2019-03-19 22:09:47 +08:00
现在的主管管理要这么精细了? 我们接口都是自己说了算
|
329
16t 2019-03-19 22:21:46 +08:00
LZ 怕不是直译强迫症吧。。。。。。
|
330
wunonglin 2019-03-19 22:27:13 +08:00
早上才几个人回复。。。。现在居然能吵 300 多楼?。。也是厉害
|
331
feelinglucky 2019-03-19 22:40:56 +08:00
@keepeye 一般我也这样子,不接受任何规劝
|
332
xiaoqi 2019-03-19 23:06:59 +08:00
难道不就是定个规范的事情吗?
|
333
iceking 2019-03-19 23:25:32 +08:00
"ret", "msg", "data"
|
334
jzmws 2019-03-19 23:37:05 +08:00
这个要看之前是这么定义的 ,要兼容旧的接口
|
335
tiaod 2019-03-19 23:40:42 +08:00
这都能翻 4 页,v2 的程序员也是够闲的
|
337
techme 2019-03-19 23:49:13 +08:00
主管和新来的总监都不会用 git
代码在一个分支上盖来盖去,心累不想管(=。=) |
338
qianbiTH 2019-03-19 23:50:03 +08:00 via Android
闲的蛋疼,我就要连按 4 下空格,咬我啊
|
339
huangdayu 2019-03-20 00:04:49 +08:00 via Android
{
"code":200, "msg":"success", "decs":"成功", "data":"List<Obj>" } 不接受反驳 |
341
ksharp8 2019-03-20 00:29:01 +08:00
一般用主管那种
|
342
SNOOPY963 2019-03-20 00:55:04 +08:00
让开让开!
别问!问就是离职! |
343
xderam 2019-03-20 01:12:29 +08:00
感觉看大家讨论也能各种涨知识,如果不讨论楼主和其主管的纷争的话,其实挺好的。
个人感觉 这玩意应该没有四海统一的标准,楼主尝试下把大家的讨论结果整理下,然后给主管一个建议,他选择哪个就是哪个。然后在论坛里和大家讨论下到底哪个方案更好,单纯和主管讨论多没意思~~~ |
344
cyssxt 2019-03-20 01:21:55 +08:00 via iPhone
这个怎么吵一天 求教
|
345
BlBana 2019-03-20 01:49:04 +08:00 via Android
有点浪费时间啊 ... 没必要啊
|
347
6260628 2019-03-20 02:10:21 +08:00
听主管的,你有本事就坐他的位置,但感觉一两年内不可能
|
348
conge 2019-03-20 02:24:27 +08:00 1
能为这点儿小事儿吵架
说明你俩积怨已深。 |
349
Trumeet 2019-03-20 04:56:27 +08:00
都怪袁隆平?
|
350
Trumeet 2019-03-20 04:56:57 +08:00
而且这个 Status Code 直接用 HTTP Status 更好吧,没必要扔到 Response body 里
|
351
mwftts 2019-03-20 06:01:19 +08:00 via Android
一个编程门外汉来说,status 是的状态码,也可以提示错误以外的代码,例如成功和警告,这样不需要额外的定义
|
352
xuanbg 2019-03-20 07:14:16 +08:00
看到楼主的返回数据格式,就想起被微信支付接口支配的恐惧。。。我都想不明白为啥正确和错误要返回不同的数据格式???我在接到返回数据前,不可能知道结果是正确还是错误阿喂!
|
353
kingsonl 2019-03-20 07:49:37 +08:00 via iPhone
当然是选择简单明了的 所以第一种 如果是我 code message
|
354
ww2000e 2019-03-20 07:51:45 +08:00 via Android
就算听你的,最后得到什么呢。。
|
355
ryan18 2019-03-20 07:55:55 +08:00 via Android
真好,又一天摸鱼白拿钱
|
356
kuyuzhiqi 2019-03-20 08:12:19 +08:00 via iPhone
支持主管,你的设计字段名太冗余了
|
357
httplife 2019-03-20 08:13:34 +08:00
吓得我赶紧看下 api
{ "status": 0, "error": { "code": 0, "message": "string", "errors": { "code": 0, "field": "string", "description": "string" } } } |
359
sarices 2019-03-20 09:09:45 +08:00
{
"错误码: 0 "错误信息": "lalala" } |
360
iidestiny 2019-03-20 09:10:51 +08:00
其实哈,你是不想再公司待了,这不是借口吵不吵的问题,你想在公司待这还用问么?当然听主管的,感觉找工作吧。新都不在这儿。
|
361
HackerPainter OP @iidestiny 这你都知道?
|
362
guoyuchuan 2019-03-20 09:12:27 +08:00
看不懂这是为什么,难道我的政治觉悟太低了?
|
363
saeed 2019-03-20 09:23:41 +08:00
还真看不惯用 错误,成功 状态都放在 errorcode , 别告诉我只有失败的状态才放在 errorcode 其实用啥都行,实现需求就行 就一个字段名的问题吵一天,真是极品
|
364
macszh2013 2019-03-20 09:24:32 +08:00
你主管是对的
|
365
wxl1380610 2019-03-20 09:24:51 +08:00
真闲
|
366
sutra 2019-03-20 09:27:06 +08:00
|
367
phper69 2019-03-20 09:31:42 +08:00
主管跟你吵得不是接口,是权力
|
368
rexyan 2019-03-20 09:45:20 +08:00
建议加上个唯一的 response id
|
369
xinjiang 2019-03-20 09:45:37 +08:00
先做人,再做技术
|
370
Honwhy 2019-03-20 09:52:08 +08:00
我的习惯仅供参考
code 对应编码,不完全是数字,比如 S00,B00,S=System B=Business status 类似于 HttpStatus 的语义,用数字描述, message, msg, errorMsg, desc,这些都不关键 |
371
wupher 2019-03-20 09:52:35 +08:00
为个字段名就争执了一天,如果没有历史或者其它原因,值得吗?
|
372
xinjiang 2019-03-20 09:54:31 +08:00
你这样的人不该在别人手下做事,应该自己开公司自己干,为了一段代码设计和主管吵一天,真是委屈你了
|
373
jorneyr 2019-03-20 09:56:00 +08:00
难道你们的接口都是返回错误信息么,字段都是描述错误为主 ^_^
|
374
wmm 2019-03-20 09:56:35 +08:00
{
"code":, "msg": "", "data": ...... } |
375
ayumi043 2019-03-20 09:58:50 +08:00
服了。两个没本子差别啊,或者有文档说明就 ok 了。这点破事也能吵。
|
376
justin2018 2019-03-20 09:59:05 +08:00
那年在缅甸,因为赌石,我把护照都压上了,结果还是输了。赌石的地方在缅甸诺瓦达卡村,无奈之下我决定铤而走险,越境回国,可惜被缅甸边防军发现,向我开枪扫射,我左脚中弹,一瘸一拐的奔向祖国一步一步的挪,左脚的疼痛让我难以忍受,记得当时身边好多大树我都没扶,就服你 😁
开个玩笑~~~ 😅 我老大说啥 我就做啥子~ 😅 |
379
Maiiiiii 2019-03-20 10:11:50 +08:00
理论上讲,这个对外输出的接口要配文档的,无论哪种方式有文档的话就都不是问题。
|
380
st2udio 2019-03-20 10:14:51 +08:00
@feikeq
code 是给前端操作的选择,比如我这个错误返回,我前端需要作出一些变化。你直接给个字符串,我用字符串去判断吗? |
381
RyanOne 2019-03-20 10:18:28 +08:00
腾讯的某接口 案例
```javascript {"retCode":"0","retMsg":null,"retObj":true} ``` |
382
atonku 2019-03-20 10:22:10 +08:00
你自己辞职吧,你定义的这是个鬼哦
|
383
crackhopper 2019-03-20 10:23:14 +08:00
function beFriendly(leaders_def){
return { errorCode: leaders_def.status, errorMsg: leaders_def.error } } 一个函数帮你解决分歧,不客气。 |
384
1354219429 2019-03-20 10:29:18 +08:00
好搞笑 这都可以吵架
|
385
zongren 2019-03-20 10:30:52 +08:00
还是工作不饱和·
|
386
onepunch 2019-03-20 10:33:33 +08:00
我现在终于理解为什么 go 要求 { 不能另写一行了,因为这些问题,脑浆子都能打出来
|
387
houzhimeng 2019-03-20 10:35:11 +08:00
感觉楼主本质上是 diss 主管的技术能力,而不是接口命名
|
388
iv2ex 2019-03-20 10:37:18 +08:00
支持你离职
|
389
string643 2019-03-20 10:39:02 +08:00
离职吧。很闲啊,这都能吵起来,以后有的气受,早离早解放😬😬
|
390
yjxkwp 2019-03-20 10:42:15 +08:00
别吵了,用
zhuangtaima 和 xiaoxi 吧 |
391
l00t 2019-03-20 10:52:26 +08:00
看了评论我震惊了。用 errorno/errorcode 来表示返回值不是 C 语言开始就有的传统了吗? 怎么表示正确?返回 0 就表示正确啊。这还需要设计两种不同的返回格式?
只能说时代变化快,遵循传统的做法原本是可以减少沟通成本的,现在反而增加了沟通成本 |
392
publicvoid 2019-03-20 10:55:46 +08:00
现在的年轻人啊,定个接口都和主管吵还想离职,我们这些老年人,老板说啥就干啥,生怕丢了工作😂
|
393
feikeq 2019-03-20 10:57:53 +08:00
|
394
fundebug 2019-03-20 10:59:14 +08:00
有毒,这是段子吧...
|
395
nomemo 2019-03-20 11:05:09 +08:00
看了眼觉得你们俩都不咋地,不止是技术上的
|
396
GeruzoniAnsasu 2019-03-20 11:29:00 +08:00
GeruzoniAnsasu 23 小时 15 分钟前 via Android ♥ 3
我感觉诸位也能在这个帖子里吵一天。。。 算应验了吗 |
397
zjyl1994 2019-03-20 11:43:27 +08:00
没啥可吵得,他说做啥你做啥就是了。上班就是为了赚钱,没什么忍不了的。
|
398
zichen 2019-03-20 12:30:35 +08:00
aws,阿里云之类的都有接口规范文档,看看人家是怎么设计的,参考一下就行了。
|
399
jabin88 2019-03-20 12:30:48 +08:00
{"code":"200","msg":"........",......}这样可能比较好
公司项目当然是听主管的呀,你是拿钱干活。你自己项目就是随便你自己了 |
400
cexy 2019-03-20 12:46:37 +08:00
------------------翻页标记线-----------------------
|