前端/客户端有什么办法来处理后端/服务端返回的不规范数据吗

2023-12-29 01:42:15 +08:00
 mouyase
本人是前端,技术栈 ts/java/oc ,web 和 app 都在做。



现在经常遇到后端返回的值让人难以琢磨。



比如同样都是表示是/否,或者打开/关闭两种状态,有点时候返回值是 0/1 ,有时候是 1/0 ,有的时候是 1/2 ,有的时候是 true/false ,有的时候是"on"/"off",还有的时候干脆就是为否就没有这个字段了。



或者是同样都是用户 id ,有时候字段叫做 user_id ,有时候叫 UserID ,有时候就只叫 id 。



然后在业务逻辑中经常会出现从不同接口拿到的同一个值,但是是在同一处 UI 显示。就导致 ts 类型定义得定义好几种不同的类型用来兼容。



各位大佬们有什么好的办法来处理这种情况吗?
12571 次点击
所在节点    程序员
123 条回复
wangtian2020
2023-12-29 09:11:25 +08:00
后端骂一顿
aogg
2023-12-29 09:13:26 +08:00
垃圾前端总有这么多话,就算是一个旧项目也会有垃圾前端问这样的话,还非要赖新来的后端
kingofzihua
2023-12-29 09:21:05 +08:00
api 返回结果单独转一下不就行了
UKnowMe
2023-12-29 09:21:47 +08:00
@LancerComet #5 感谢你发的 JSON.NET 我之前一直手写的
Jamy
2023-12-29 09:21:53 +08:00
客户端在接收到服务器消息的时候,加个中间层,
清洗来自服务器的数据,
这时候你想怎么转就怎么装.当然工作量都是你的.😎
Quarter
2023-12-29 09:28:17 +08:00
@aogg @bianhui 两位是受过什么伤么,反应这么大,什么叫“垃圾前端”,什么叫“就应该前端适配后端”,咱就说,如果是自己设计能力不行就好好学习,努力提升一下,同一个项目制定一套标准的编码规范、统一一下接口设计思路都这么难么,同一个对象在不同接口字段都不统一,你们好像表现的很理所当然啊,甚至还骄傲的挺了挺胸,我也没看到测试在对前端进行一比一 UI 还原比对的时候有后端跳出来说“你们这是搞国家项目啊这么严格”“垃圾测试就是话多啥都怪前端”,还什么叫“多做一个判断怎么了”,一个接口让我多做一个判断,十个接口让我多做十个判断,凭啥给前端增加工作量撒,你要是占理还则罢了,居然还能“无理取闹”了起来,真的是“世界之大,无奇不有”
toesbieya
2023-12-29 09:30:32 +08:00
楼上吐槽的那两位早被 b 了,经典人菜脾气大
lyxxxh2
2023-12-29 09:34:31 +08:00
找个大佬管下 或者自己成为大佬
不然说了没用
AreYou0k
2023-12-29 09:36:18 +08:00
后台什么语言, php 吗? 这种一看就是直接拿数据库转给前端都没处理的. 强类型语言一般定义好不会出现这种问题.
cleanery
2023-12-29 09:36:27 +08:00
建议提桶跑路
smirkcat
2023-12-29 09:37:48 +08:00
是不是用的 php 哈哈,建议换成强类型语言
potatowish
2023-12-29 09:45:45 +08:00
老项目是这样的,后端团队没有严格的开发规范和代码 review ,不同的人来接手项目,数据返回形式就很混乱。你不能指望现在接手的人一次性给你全部解决了。你可以类比你对接不同公司的接口,响应成功的状态码可以有 0 、200 、SUCC 、SUCCESS 、OK 等好几种不同的值。
mouyase
2023-12-29 09:46:59 +08:00
@AreYou0k
@smirkcat
后台用的 golang (

@Quarter
大概就是这两位这种才会写出来这样的接口罢
suyuyu
2023-12-29 09:48:53 +08:00
像极了我司后端,关联查询让前端自己遍历... 邮箱我用 emali 提交死活报错(没有文档),一问才知用的'mailbox'字段
suyuyu
2023-12-29 09:49:24 +08:00
@suyuyu email 打错了
nerkeler
2023-12-29 09:51:05 +08:00
没办法 Mysql 没有 true/false
vincent7245
2023-12-29 09:54:09 +08:00
你们没有接口文档的吗,文档里怎么规定的就怎么写啊
janus77
2023-12-29 09:54:30 +08:00
这个时候 强类型工程化语言就起到作用了(没错 点的就是你 java )
返回不明?直接用 boolean 啊,我不信还有人放着 boolean 不用非要自己定义数字
命名混乱? java 的 code style 从培训班开始就深入骨髓了,基本上不会出现特殊情况
至于第三点,只要后端的 TO 是同一个,理论上返回类型就是一样的。
moyt
2023-12-29 09:55:09 +08:00
@Baymaxbowen 这才是实事求是的玩法,大家都填屎,随便搞搞就完了,别想着代码多漂亮,没毛用
adoal
2023-12-29 10:04:19 +08:00
有 7 种办法:长生剑、孔雀翎、碧玉刀、多情环、霸王枪、离别钩、小马的拳头。

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

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

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

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

© 2021 V2EX