这里是修真院后端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析后端知识/技能,本篇分享的是:
【如何书写假数据? 】
大家好,我是IT修真院深圳分院第十期学员,一枚正直纯洁善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务十——如何书写假数据?
1.背景介绍
在一个新项目的开发中,允许的开发时间都比较短,需要前后端同时进行开发。后端开发不依赖前端,技术水平决定开发用时。但前端不同,静态页面可以独立开发,但动态页面的开发依赖于后端提供的数据。如果前端脱离后端的数据支持, 自己埋头干的话,到项目发布前肯定会有一大堆的改动;而开发时间有限,不允许等到后端接口完成开发后前端再进行开发调试。
我们来讨论一下怎么解决上面的两个问题:
A.不进行大的改动?
需要前后端协调,确定接口返回的数据结构、数据类型、对象名称等等内容,也就是对接口文档进行协议需要前后端协调,确定接口返回的数据结构、数据类型、对象名称等等内容,也就是对接口文档进行协议。实际是后端编写接口文档,然后给前端看,前端确认没问题后再进行开发。
B.在后台没有开发完全的时候,前端同时进行开发?
使用假数据。那这个假数据是由谁提供?假数据是依赖于接口文档的,而接口文档的出参、入参又依赖于DB设计,DB设计是我们后端做的,所以这个假数据是由我们后端提供的。
2.知识剖析
A.假数据是什么类型的?
假数据是JSON类型的。JSON是JS对象对象表示法,它使用javascript语法来描述数据对象。JSON语法是JS语法的子集,但JSON任然独立于语言和平台,它是存储和交换文本信息的语法,是轻量级的文本数据交换格式,所以我们使用JSON格式来提供假数据。
B.提供假数据的原则
模拟假数据,不是模拟垃圾数据。假数据仅仅是指数据不真实,并不代表着数据可以随便填。模拟数据的时候要保证数据的多样性,1是要尽可能的模拟正常使用的情况;2是要尽可能的模拟异常的情况。
3.怎么提供假数据?
A.在网上找到的答案,都是前端用mock js写假数据,这有一定的风险。有什么风险呢?上面提到了假数据要真实,如果前端对接口文档理解不透彻或者是有偏差的话,那他写的假数据就有问题,到接口联调的阶段还是会有很多问题。
B.在这里,我用的方法是上一篇文章提到的RAP。RAP自身就支持自动生成假数据,只要我们使用RAP编写接口文档,RAP就会帮我们生成假数据。在RAP中我们还可以使用@mock指定生成的假数据的格式,这些内容再RAP官方用户手册写的很清楚,RAP还有官方演示视频,非常好入门,我就不赘述了。
回到提供假数据这个主题。RAP提供了一个插件,前端在代码中引入这个插件就可以使用假数据了。
我们后端用RAP写好的接口文档后,点击页面右上角“配置”按钮,会有一行代码,这行代码就是上面提到的RAP插件。这个插件映射的就是我们刚刚写接口文档。把这行代码交给前端,前端在HTML中需要先引入JQ,紧跟着再引入RAP插件,就可以使用假数据了。
详细的过程在下面的视频中。
3.常见问题
如何提供多个数据
4.解决方案
zwp.duoluobo.entryBannerShow {
String String String String String [] = {}String[] = {}String[] = {}String[] = {}[] = {}[] = {}[] = {}[] = {}[] = {}String[] = {}String[] = { }(typesize) {
i = size % .= [i].= size.= [i]}
() {
}
(id) {
.= id}
String () {
}
(String photo) {
.= photo}
String () {
}
(String jumpUrl) {
.= jumpUrl}
String () {
+
+ +
+ + +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ + +
+ + +
}
}
```
6.扩展思考
7、参考文献
方志鹏CSDN
SpringBoot的swagger2
8、更多讨论
1、问:springcloud 可以结合zookeeper吗?
答:springcloud可以使用zookeeper作为注册中心,也可以用consul作为注册中心,并非一定要用eureka。只不过使用eureka的话,能共使用Netflix的oss组件,搭建起来更加方便。
2、http请求地址和资源文件映射有什么内容
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
3、swagger2需要什么依赖
io.springfoxspringfox-swagger22.6.1io.springfoxspringfox-swagger-ui2.6.1
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。