了解下现在接口返回都是什么形式, 要不要提示文本?

2021-07-26 10:39:02 +08:00
 onikage

http, json. 以登录接口为例, 两种方案:

  1. 返回{"code":0} 代表成功, {"code":1} 代表用户名密码不匹配. 前端页面自己根据 code 显示不同提示文案.
  2. 返回{"code":0,"msg":"登录成功"}, {"code":1, "msg":"用户名密码不匹配"}, 页面上直接显示 msg 属性的文本. 我个人认为第二种非常啰嗦, 一个 code 足以说明问题, 但是好像不少人都习惯第二种.
5833 次点击
所在节点    编程
77 条回复
makun123
2021-07-26 15:56:17 +08:00
必须第二种好,使用起来也更灵活些,一个 code 可以对应多个 msg,我还有场景用到,一个 code 对应的 msg 提示中拼接一些业务处理后的提示参数,第二种直接返回了,第一种还得和 FE 特殊约定下
makun123
2021-07-26 15:59:04 +08:00
还有题外问下楼主已经 40+了么
FallenTy
2021-07-26 15:59:07 +08:00
第二种后端也能做国际化,功能实现都一样,这种就是少数服从多数了。
KyrieJoshua
2021-07-26 16:23:17 +08:00
@onikage 10L
如果抱着图省事的心态让前端做,以后前端就不理你了。。
zgray
2021-07-26 16:42:19 +08:00
有种场景必须用 2,而不能用 1 。

当后端有个原来预想外的逻辑要额外增加错误提示,但是发布前端已经来不及(前端可能是 APP,或者是利用 electron 之类的客户端方案),必须后端先修复,这个时候前端如果是用 msg 提示,那么后端是可以立刻修复后发布。而不给 msg 只用 code,前端这时候只能报“内部错误”这样的提示了。
ily433664
2021-07-26 16:57:38 +08:00
肯定是第二种,就算你想让前端自己控制提示语句,第二种也可以兼容
queuey
2021-07-26 17:02:53 +08:00
第一种很傻,
code 是通用的,如果按照第一种来的话,付款失败可能有几十种原因,判断 code 给几十个 前端自己处理?
Hslacker
2021-07-26 17:29:40 +08:00
第二种,前端不用写一堆枚举
ytmsdy
2021-07-26 17:35:28 +08:00
第二种吧!这样还能悄咪咪的加入一些其他的提示脚本,这样前端就不需要重新发布。
要不然新增一个提示信息,前端需要修改,后端也需要修改。
zxCoder
2021-07-26 17:38:13 +08:00
第二种,只用修改一端
aguesuka
2021-07-26 17:44:22 +08:00
当然要, 后者是前者的超集, 第一种方案能实现的第二种都能实现. 第一种情况需要维护一个超级大的枚举, 非常反设计.
balabalaguguji
2021-07-26 17:58:49 +08:00
刚好有写一个响应参数的教程 https://easydoc.net/posts/response-data-design/
libook
2021-07-26 18:08:23 +08:00
看需求。

如果前端需要对文本进行风控或限制的话,第一种方案比较合适。
如果希望能快速调整文本的话,第二种比较合适。
liuhuihao
2021-07-26 18:16:23 +08:00
当然是第二种
常见的场景就是 APP,产品可能要修改一个小小的错误文案,使用第一种的话,就要给所有用户推送更新才行,第二种后端直接修改即可。
sytnishizuiai
2021-07-26 18:25:24 +08:00
我一开始想用 1,但是 msg 中文也写了,顺带的,后来慢慢变成 2 了,code 自己写多了烦,还要写文档,前端找,还不如用 2 的方式,我现在 code 也不写多了,除非需要前端去判断的才额外写个 code 。
onikage
2021-07-26 18:39:19 +08:00
@netwjx 作为后端, 我认为的核心就是少一部分工作量以及对应的 bug.
onikage
2021-07-26 18:47:06 +08:00
waytoshine
2021-07-26 19:05:51 +08:00
你的观点,只能说你目前没做过什么稍微大点的系统的开发
kekxv
2021-07-26 19:54:35 +08:00
前端:?要不要我把后端接口也做了?🐶
onikage
2021-07-26 19:59:04 +08:00
@waytoshine 什么叫大?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791754

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX