大家前后端规范是怎么制定的呢?

2018-04-11 09:08:03 +08:00
 wojfsdj

比如使用 JSON 格式,那么怎么有效的表示空数据呢? 空字符串是返回 null, 还是"" ,数字是返回 null,还是 0 呢,集合是[],还是 null?

其他方面还有哪些是需要前后端一些协商规范的呢?希望大家指点一二

12035 次点击
所在节点    程序员
68 条回复
oswuhan
2018-04-11 11:11:14 +08:00
制定与实施规范的权责必须分离,开发者在任意时刻不能同时担任规范制定者与执行者双重角色。

具体实践的时候,可以引入类似于 http://yapi.demo.qunar.com/这样的工具。
wojfsdj
2018-04-11 11:13:42 +08:00
@netlxl 清晰很多了。对于 Java 而言,是否 DTO,或者请求的 Param 也用 Intger 等包装类来接受对应的参数了,这样才能有 null 了
Zzde
2018-04-11 11:22:08 +08:00
None null 混着 傻傻分不清
netlxl
2018-04-11 11:24:14 +08:00
@wojfsdj 作为数据对象的 pojo 最好都用包装类。有个极端说法是:除非是方法内部使用的变量,都要用包装类。另外只有 Boolean 类型的布尔值,可以命名为 isXXX,基本 boolean 类型布尔值,是不能名名称 isXXX 的。
lsls931011
2018-04-11 11:28:17 +08:00
@ChefIsAwesome 验证这事情, 前后端都要进行,这是两道防线。 而且前端验证可以减缓服务器压力,提升服务器的并发。后端验证是为了处理那些非常规请求
Mutoo
2018-04-11 11:32:44 +08:00
用 GraphQL 多省事,前端想怎么整就怎么整,不需要后端插手。
stach
2018-04-11 12:11:42 +08:00
@netlxl 所以你的设计其实是偏向于用 null 的,不去限制 null 的产生,我的原则是把 null 统统干掉。
你假想不管是前端,还是后端,都有成熟的框架,都能帮你去处理 null 的判断问题。
我假想的是不管有没有框架,纯 sql 也好,ORM 也好,都能很稳定,让数据可预期,而不是不确定,有歧义。
gamexg
2018-04-11 12:24:03 +08:00
坚决抵制 null。
akira
2018-04-11 12:29:49 +08:00
只要都遵循一个规范,都可以
v2chou
2018-04-11 12:37:21 +08:00
我们后端看他心情返回 什么样的都有 '' [] null 1 '2' 要什么有什么
v2chou
2018-04-11 12:39:46 +08:00
我是日了🐶了
lamada
2018-04-11 12:57:54 +08:00
建议前端自己写一个校验 response 的规则
faceRollingKB
2018-04-11 14:39:43 +08:00
有些容易被踩的坑规范下,免得出问题老得给新人讲
有些有争议的做法规范下,免得老得说服别人怎么写
tjsdtc
2018-04-11 14:42:20 +08:00
只要规范统一就行,比如空数组不要一会返回[]一会返回 null 就行
liyj144
2018-04-11 14:59:58 +08:00
后端返回 "", 0, []. 不过前端最好也都校验一把。对于嵌套较深的 Object,后端很容易漏处理。
silhouette
2018-04-11 15:13:06 +08:00
字符串为空就不要 null 而是空字符串,其他的该 Null 就 Null
eloah
2018-04-11 15:16:44 +08:00
我本来想过来吐槽一下我们公司后台什么规范都没有,大家写代码都随心所欲的
然后看了一下描述的 JSON 的问题,感觉我们公司还没这么不规范
Doge
colorwin
2018-04-11 16:47:37 +08:00
我是前端,我们的后端 {} 为空的时候返回 null, 他说返回 {} 这样很麻烦,他用的是 Java,请问是这样吗?
lovedebug
2018-04-11 17:56:50 +08:00
全都字符串化,不用扯皮了。
wojfsdj
2018-04-11 17:59:29 +08:00
@colorwin 也不麻烦呢,就初始化一下

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

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

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

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

© 2021 V2EX