有没有这样一个 lib,可以帮 js 前端“清理”后台 api 返回的数据结构?

2017-12-20 19:56:39 +08:00
 wxsm

比如说,按照约定后台应该返回这样的一个数据结构:

{
  a: {
    b: [] // 某数组
  },
  c: '某字符串'
}

但是有时候事与愿违,团队开发者一多,后台往往会返回缺斤少两或者奇怪的东西,导致错误,比如

{
  a: null,
  c: null
}

或者:

{
  a: {
    b: null
  }
}

我知道可以通过逐个字段判空来解决,但这太麻烦了,而且一不小心就漏掉了什么地方。有没有一种工具,可以对这样的数据按照约定结构进行补全呢?

比如:

6171 次点击
所在节点    程序员
50 条回复
wxsm
2017-12-21 09:48:23 +08:00
@justfindu 因为前端对数据的类型是有“预期”的(按照约定)。比如说正常来说数组都是用来遍历的,但是后台就返回了个 null,导致遍历失败报错。如果我按照“预期”把它变成一个 [],那不就解决了。团队开发者一多,沟通成本很高,反正我提过很多次了,根本没人鸟我。
li746224
2017-12-21 09:50:52 +08:00
graphql 吧,虽然觉得前端收益大,后端搞起来麻烦
v2chou
2017-12-21 09:51:33 +08:00
我们后台就是这样
leemove
2017-12-21 10:05:16 +08:00
哎呀 现在每一个请求我都会 catch.最要命的的是超时.
justfindu
2017-12-21 11:01:33 +08:00
@wxsm 所以我说你要通过配置预期来格式化每一个接口, 接口数据一多, 你就死了. 虽然我是后端, 但是这锅明显要甩给后端. 你就不管, 只要不符合格式, catch 到错误, 你就提示数据无法获取 哈哈哈哈
ChristopherWu
2017-12-21 11:27:18 +08:00
这种一般后端做,如上面同学说的 json schema,不但验证 request,给前端 response 也验证了。
后端不上只能打一架了
yuxuan
2017-12-21 11:29:20 +08:00
明显后端的锅 楼主要强势一些 加 lib 是在牺牲前端性能来做
kenshinhu
2017-12-21 11:31:02 +08:00
有责任的后端都会把这个解决的
denano
2017-12-21 11:41:12 +08:00
和后端定好数据结构,给出 api 文档当然是最好的了,还有自己前端写个函数判断下返回值结构咯
paradoxs
2017-12-21 11:43:55 +08:00
我们公司的话,大概 这个样子
{
result: 000000 成功 999999 失败 22222 某某错误
msg:
data :
}

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

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

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

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

© 2021 V2EX