码迷,mamicode.com
首页 > 其他好文 > 详细

构建前端Mock Server--RAP部署及使用

时间:2017-12-29 22:35:49      阅读:863      评论:0      收藏:0      [点我收藏+]

标签:sed   次数   doc   data   bst   连接   根据   控制   mit   

      RAP是阿里的一套完整的可视化接口管理工具,可以定义接口结构,动态生成模拟数据,校验真实接口正确性。不仅如此,RAP围绕接口定义,提供了一系列包括团队管理、项目管理、文档版本管理、mock插件等服务。
RAP可以完全可视化地定义项目相关信息,定义接口的请求响应等等,学习成本较低。RAP还为后端开发人员提供了校验接口的功能,为前端开发人员提供了mock数据的工具等。

RAP使用场景

mock:模拟的,虚假的

mock server:模拟服务,模拟请求,模拟虚假数据

为了前后端更好的分工,接口文档是必须的,前后端都根据接口文档写代码,然后对接接口就行了。

但是,后端跟不上前端节奏,接口跟不上来怎么办?即便接口跟上来了,大后端数据跟不上又怎么办?

第一种想到的方法就是模拟返回数据,根据接口文档定义好的返回数据格式,新建一个json文件夹,里面放一堆*.json文件,像这样:

技术分享图片

然后请求json数据,像这样:

技术分享图片

所以为了前端有数据,就会有很多很多的请求json文件。当后端接口上来后,又要一个一个挨着去把json请求改为真实接口名,这就要求代码需要写的比较规范,不然接口的对接真的很难受,而且在修改某些复杂逻辑的地方的时候还必须的小心翼翼,不然就只有等测试发来bug单了。

造json文件模拟请求对于小的项目确实还是挺方便的,但是项目大了呢,上百个接口甚至更多呢?

一堆一堆的json看着都烦,还不说前后端对接了。

那么要怎么才能解决前后分离,节约时间,提高开发效率,减少前端对后端的依赖呢?

那就是为前端提供一个可以在本地用的web容器,这个就是 mock server。

mock server 能解决哪些问题呢?

  1. 接口文档的编写

  2. 根据接口拦截请求,返回接口需要返回的结果数据

  3. 方便线上线下的切换

我这里要用做mockserver的就是rap了,rap结合了团队管理,项目管理,文档编写、Mock.js、可视化、接口过渡、文档历史版本(赞)、mock插件(线上线下切换就只需要注释一句代码就OK),支持本地部署。

RAP部署

那么怎么将rap部署到本地呢?官网有部署手册:传送门

我这里是部署到windows环境下的。

部署方式有两种:

  1. 使用编译好的war包部署(适合仅想部署RAP服务,不需开发定制功能的同学)

  2. 使用源码自行编译、开发后部署(需配置J2EE开发环境, 适合想要研究RAP源代码,开发定制功能的同学)

我们不需要自行开发就采用war包部署。

需要环境:jdk,tomcat,MySQL,Redis

第一步:在官网 传送门 将最新的war包下下来,然后改名为ROOT.war,放到tomcat下面的webapps里面

技术分享图片

第二步:启动tomcat,该war包自动部署到文件夹ROOT

技术分享图片

技术分享图片

第三步:修改数据库配置文件,打开ROOT中的WEB-INF/classes/config.properties

1
2
3
4
5
6
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/rap_db?useUnicode\=true&characterEncoding\=utf8&zeroDateTimeBehavior\=convertToNull&noAccessToProcedureBodies\=true
jdbc.username=root
jdbc.password=root
redis.host=localhost
redis.port=6379

jdbc.username=您的数据库用户名

jdbc.password=您的数据库密码

redis的端口号默认

配置完数据库连接后,我们要在mysql中运行官方提供的sql脚本,以便RAP系统使用。

rap_db.sql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
CREATE DATABASE IF NOT EXISTS rap_db
DEFAULT CHARSET utf8
COLLATE utf8_general_ci;
 
USE rap_db;
 
 
/**************************************************
* *
* account module *
* *
**************************************************/
 
 
/**
* user table
*/
CREATE TABLE tb_user
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
account VARCHAR(32) NOT NULL
COMMENT ‘账户名 account name‘,
password VARCHAR(128) NOT NULL
COMMENT ‘密码 password‘,
name VARCHAR(256) NOT NULL
COMMENT ‘名字/昵称 name/nickname‘,
email VARCHAR(256) NOT NULL
COMMENT ‘email‘,
create_date TIMESTAMP NOT NULL
COMMENT ‘创建日期 create date‘
DEFAULT now(),
is_locked_out INT(1) NOT NULL
COMMENT ‘用户是否锁定 is the user locked out‘
DEFAULT 0,
is_hint_enabled INT(1) NOT NULL
COMMENT ‘是否开启新手引导 is user hint enabled‘
DEFAULT 1,
last_login_date DATETIME NOT NULL
COMMENT ‘最近登录 last login date‘,
incorrect_login_attempt INT(10) NOT NULL
COMMENT ‘错误登录次数,登录成功后会重置为0 count of incorrect login attempts, will be set to 0 after any succesful login‘
DEFAULT 0,
realname VARCHAR(128) NOT NULL
COMMENT ‘真实姓名‘
DEFAULT ‘‘,
emp_id VARCHAR(45) NULL
COMMENT ‘工号,可选‘,
mock_num INT(10) NOT NULL
COMMENT ‘mock次数,用于记录该用户所创建的接口被调用的mock次数。 mock num, used for record mock API invokation count‘
DEFAULT 0
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* role table
* roles instruction:
* user - every registered shuold have this role
* rd - research and development engineering
* qa - quality engineering
* pm - project manager
* op - operation manager
* admin - administrator
* god - super admin
*/
CREATE TABLE tb_role
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
name VARCHAR(16) NOT NULL
COMMENT ‘角色名称 role name‘
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* user role table
*/
CREATE TABLE tb_role_and_user
(
user_id INT(10) NOT NULL,
role_id INT(10) NOT NULL,
 
PRIMARY KEY (user_id, role_id),
FOREIGN KEY (user_id) REFERENCES tb_user (id),
FOREIGN KEY (role_id) REFERENCES tb_role (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
 
/**************************************************
* *
* project module *
* *
**************************************************/
 
 
 
/**
* parameter table
*/
CREATE TABLE tb_parameter
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
name VARCHAR(256) NULL
COMMENT ‘参数含义 parameter name‘,
identifier VARCHAR(256) NULL
COMMENT ‘变量名/参数标识符 parameter identifier‘,
data_type VARCHAR(32) NULL
COMMENT ‘数据类型 data type‘,
remark TEXT NULL
COMMENT ‘备注/mock数据等 remark/mock data‘,
expression VARCHAR(128) NULL
COMMENT ‘备用字段:表达式 backup column:expression‘,
mock_data TEXT NULL
COMMENT ‘备用字段:mock数据 backup column:mock data‘
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* project table
* workspace_mode 1-vss(default) 2-svn
* stage 1-design 2-developing 3-debug
*/
CREATE TABLE tb_project
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
`version` VARCHAR(128) NOT NULL
COMMENT ‘版本号 version no.‘
DEFAULT ‘0.0.0.1‘,
name VARCHAR(128) NOT NULL
COMMENT ‘项目名称 project name‘,
create_date TIMESTAMP NOT NULL
COMMENT ‘创建日期 create date‘
DEFAULT now(),
user_id INT(10) NOT NULL
COMMENT ‘创建人ID, project author id‘,
introduction TEXT NULL
COMMENT ‘项目描述 project introduction‘,
workspace_mode INT(10) NOT NULL
COMMENT ‘工作区提交模式(类VSS or SVN),暂时弃用了。 Workspace submit mode, deprecated.‘
DEFAULT 1,
stage INT(10) NOT NULL
COMMENT ‘项目阶段,暂时废弃;project stage, temply deprecated. 1-design 2-developing 3-debug‘
DEFAULT 1,
project_data LONGTEXT NULL
COMMENT ‘项目JSON数据,存放当前最新的版本。 project JSON data, saved the newest version of the project‘,
group_id INT(10) NULL
COMMENT ‘分组ID group id‘,
related_ids VARCHAR(128) NOT NULL
COMMENT ‘路由ID,用于指定与哪些项目共享mock数据; router id, used for specify sharing data with which projects.‘
DEFAULT ‘‘,
update_time DATETIME NOT NULL
COMMENT ‘更新时间 update time‘,
mock_num INT NOT NULL
COMMENT ‘mock次数 mock num‘
DEFAULT 0,
access_type TINYINT NOT NULL
COMMENT ‘权限控制, 10普通, 0私有‘
DEFAULT 10,
 
FOREIGN KEY (user_id) REFERENCES tb_user (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* user list and user table
* used for creating multiple to multiple mapping
* access_level:
* 1 - read
* 2 - read&write
* 3 - read&write&manage
*/
CREATE TABLE tb_project_and_user
(
project_id INT(10) NOT NULL,
user_id INT(10) NOT NULL,
access_level INT NOT NULL
DEFAULT 1,
 
PRIMARY KEY (project_id, user_id),
FOREIGN KEY (project_id) REFERENCES tb_project (id),
FOREIGN KEY (user_id) REFERENCES tb_user (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* module table
*/
CREATE TABLE tb_module
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
project_id INT(10) NOT NULL,
name VARCHAR(256) NOT NULL,
introduction VARCHAR(128) NULL,
 
FOREIGN KEY (project_id) REFERENCES tb_project (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* page table
*/
CREATE TABLE tb_page
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
name VARCHAR(56) NOT NULL,
module_id INT(10) NOT NULL,
introduction TEXT NULL,
template VARCHAR(128) NULL,
 
FOREIGN KEY (module_id) REFERENCES tb_module (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* action table
* request_type:
* 1 - get
* 2 - post
* 3 - ajax get
* 4 - ajax post
*/
CREATE TABLE tb_action
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
name VARCHAR(256) NOT NULL,
description TEXT NULL,
 
/* request block */
request_type INT NOT NULL
COMMENT ‘请求类型get/post/put/delete等等 request type‘
DEFAULT 1, /** request_type = 99, mount type **/
request_url TEXT NULL,
 
disable_cache TINYINT NOT NULL
COMMENT ‘禁用Mock缓存 disable mock cache‘
DEFAULT 0,
 
/* response block */
response_template TEXT NULL
COMMENT ‘响应模板地址, 暂时弃用。 response template address, temply deprecated.‘
 
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* action and page table
* used for creating multiple to multiple mapping
*/
CREATE TABLE tb_action_and_page
(
action_id INT(10) NOT NULL,
page_id INT(10) NOT NULL,
 
FOREIGN KEY (action_id) REFERENCES tb_action (id),
FOREIGN KEY (page_id) REFERENCES tb_page (id),
PRIMARY KEY (action_id, page_id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
 
/**
* parameter and parameter mapping
* complex_parameter has so many parameters(List<Map> or Map)
*/
CREATE TABLE tb_complex_parameter_list_mapping
(
complex_parameter_id INT(10) NOT NULL,
parameter_id INT(10) NOT NULL,
 
PRIMARY KEY (complex_parameter_id, parameter_id),
FOREIGN KEY (complex_parameter_id) REFERENCES tb_parameter (id),
FOREIGN KEY (parameter_id) REFERENCES tb_parameter (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* parameter and action‘s request mapping
*/
CREATE TABLE tb_request_parameter_list_mapping
(
action_id INT(10) NOT NULL,
parameter_id INT(10) NOT NULL,
 
PRIMARY KEY (action_id, parameter_id),
FOREIGN KEY (action_id) REFERENCES tb_action (id),
FOREIGN KEY (parameter_id) REFERENCES tb_parameter (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* parameter and action‘s response mapping
*/
CREATE TABLE tb_response_parameter_list_mapping
(
action_id INT(10) NOT NULL,
parameter_id INT(10) NOT NULL,
 
PRIMARY KEY (action_id, parameter_id),
FOREIGN KEY (action_id) REFERENCES tb_action (id),
FOREIGN KEY (parameter_id) REFERENCES tb_parameter (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
 
/**************************************************
* *
* workspace module *
* *
**************************************************/
 
 
/**
* workspace, deprecated 工作区,暂时未使用
*/
CREATE TABLE tb_workspace
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
project_id INT(10) NOT NULL,
user_id INT NOT NULL,
create_date TIMESTAMP NOT NULL
DEFAULT now(),
update_date DATETIME NOT NULL,
project_data LONGTEXT NOT NULL,
project_data_original LONGTEXT NOT NULL,
 
FOREIGN KEY (project_id) REFERENCES tb_project (id),
FOREIGN KEY (user_id) REFERENCES tb_user (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* workspace save, deprecated 工作区保存草稿,暂时未使用
*/
CREATE TABLE tb_workspace_save
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
workspace_id INT(10) NOT NULL,
update_date DATETIME NOT NULL,
project_data LONGTEXT NOT NULL,
 
FOREIGN KEY (workspace_id) REFERENCES tb_workspace (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* check in table
* every API document submit saved here, used for version control.
* 每一次提交记录在这里,用于版本管理和回滚控制
* workspaceMode 1-VSS 2-SVN
*/
CREATE TABLE tb_check_in
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
create_date TIMESTAMP NOT NULL
DEFAULT now(),
tag VARCHAR(128) NULL
COMMENT ‘tag标签 暂时未使用 deprecated‘,
user_id INT(10) NOT NULL
COMMENT ‘提交人 submit user id‘,
project_id INT(10) NOT NULL
COMMENT ‘提交的项目ID submit project id‘,
description TEXT NULL
COMMENT ‘提交描述 submit description‘,
version VARCHAR(128) NOT NULL
COMMENT ‘版本号 version no.‘,
project_data LONGTEXT NOT NULL
COMMENT ‘项目JSON数据 project json data‘,
workspace_mode INT(10) NOT NULL
COMMENT ‘工作区模式(弃用) workspace mode(deprecated)‘,
log TEXT NULL
COMMENT ‘更新日志,用于存储与最近一个版本的对比差异。暂时未使用。update log, used for calculate versions differences. Deprecated.‘,
 
FOREIGN KEY (user_id) REFERENCES tb_user (id),
FOREIGN KEY (project_id) REFERENCES tb_project (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* user settings table
* 用户配置表
*/
CREATE TABLE tb_user_settings
(
user_id INT(10) NOT NULL,
`key` VARCHAR(128) NOT NULL
COMMENT ‘配置KEY config key‘,
`value` VARCHAR(128) NOT NULL
COMMENT ‘配置VALUE config value‘,
 
PRIMARY KEY (user_id, `key`),
FOREIGN KEY (user_id) REFERENCES tb_user (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* user notification table
* 用户通知表
*/
 
CREATE TABLE tb_notification
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
user_id INT(10) NOT NULL
COMMENT ‘接受通知的用户id; user id to be notified.‘,
target_user_id INT(10) NOT NULL
COMMENT ‘上下文用户id; context user id‘,
type_id SMALLINT NOT NULL
COMMENT ‘1-文档修改,2-被加入新项目‘,
param1 VARCHAR(128) NULL
COMMENT ‘1,2-项目id‘,
param2 VARCHAR(128) NULL
COMMENT ‘ 1,2-项目名称‘,
param3 TEXT NULL
COMMENT ‘备用预留 reserved‘,
create_time TIMESTAMP NOT NULL
COMMENT ‘创建时间 create time‘
DEFAULT now(),
 
is_read SMALLINT NOT NULL
COMMENT ‘是否已读 is notification read‘
DEFAULT 0,
 
FOREIGN KEY (user_id) REFERENCES tb_user (id),
FOREIGN KEY (target_user_id) REFERENCES tb_user (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* corporation table
* 公司表
*/
CREATE TABLE tb_corporation
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
name VARCHAR(256) NOT NULL,
logo_url VARCHAR(256) NULL,
user_id INT(10) NULL,
access_type TINYINT NOT NULL
COMMENT ‘权限控制, 10普通, 20公开‘
DEFAULT 10,
`desc` TEXT NOT NULL
COMMENT ‘备注‘,
 
FOREIGN KEY (user_id) REFERENCES tb_user (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
 
/**
* product line table
* 生产线表
*/
CREATE TABLE tb_production_line
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
name VARCHAR(256) NOT NULL,
project_num INT(10) NOT NULL
DEFAULT 0,
corporation_id INT(10) NOT NULL,
user_id INT(10) NOT NULL,
 
FOREIGN KEY (user_id) REFERENCES tb_user (id),
FOREIGN KEY (corporation_id) REFERENCES tb_corporation (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* project group table
* 项目分组表
*/
CREATE TABLE tb_group
(
id INT(10) AUTO_INCREMENT NOT NULL
PRIMARY KEY,
name VARCHAR(256) NOT NULL,
production_line_id INT(10) NOT NULL,
user_id INT(10) NOT NULL,
 
FOREIGN KEY (user_id) REFERENCES tb_user (id),
FOREIGN KEY (production_line_id) REFERENCES tb_production_line (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
/**
* 规则表,存储通过Open API设置的Mock规则
* Stored mock rules set by Open API
*/
CREATE TABLE tb_rule (
action_id INT(10) NOT NULL
PRIMARY KEY,
rules TEXT NOT NULL, -- JSON规则
update_time DATETIME NOT NULL
DEFAULT NOW(), -- 最近更新时间
 
FOREIGN KEY (action_id) REFERENCES tb_action (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
CREATE TABLE tb_corporation_and_user
(
user_id INT(10) NOT NULL,
corporation_id INT(10) NOT NULL,
role_id INT(10) NOT NULL,
 
PRIMARY KEY (user_id, corporation_id),
FOREIGN KEY (user_id) REFERENCES tb_user (id),
FOREIGN KEY (corporation_id) REFERENCES tb_corporation (id),
FOREIGN KEY (role_id) REFERENCES tb_role (id)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
 
 
-- required base data
INSERT INTO tb_role (name) VALUES (‘god‘);
INSERT INTO tb_role (name) VALUES (‘admin‘);
INSERT INTO tb_role (name) VALUES (‘user‘);
-- removed unused qa/pm/rd roles
 
 
INSERT INTO tb_user (account, password, email, create_date, last_login_date, name) VALUES
(‘admin‘, ‘RESERVED‘, ‘admin@example.com‘, NOW(), NOW(), ‘admin‘);
 
INSERT INTO tb_role_and_user (user_id, role_id) VALUES (1, 1);
 
-- INSERT INTO tb_corporation (name, logo_url, user_id) VALUES (‘MyTeam‘, ‘empty‘, 1);
-- 新版RAP可以自建团队,不需要插入默认团队了。
-- RAP v0.11.5+ users can create teams by their own, so there‘s no need to set default team.

注意,因最新的mysql的sql_mode设置的比较严格,需要手动配置下SQL_MODE来禁止full_group检查,可以改MySQL配置文件,或者运行如下SQL语句来修改SQL_MODE:

1
SET @@global.sql_mode = ‘STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION‘;

技术分享图片

安装redis

请参见:http://blog.csdn.net/erlian1992/article/details/54382443

在redis根目录下启动redis:

启动redis命令:

1
redis-server.exe redis.windows.conf

 

测试使用

开启tomcat和redis,浏览器输入:localhost:8803(我tomcat设置了端口号,默认为8080)

技术分享图片

进入RAP的WEB页面说明部署成功了。

首先我们注册一个普通账户,并登陆:

技术分享图片

在tb_role_and_user中添加一条记录将我们的账户进行提权,user_id是管理员的id,role_id是1(超级管理员)或2(管理员)。

技术分享图片

技术分享图片

提权之后我们注册的用户就有超级管理员的权限了。

RAP接口管理的使用方式十分简单,大家自己操作几遍就会了,这里给小白说几个常用的功能点,避免遇到太多坑:

1、 参数录入问题

在进行RAP接口文档编写时,有些接口参数比较多,里大家可以不要浪费时间一个一个去添加参数,直接把我们服务端返回给前端的json导入,会自动生成参数及对应的数据,我们只需要输入每个字段的含义就可以了。

技术分享图片

导入以下json:

1
{"age":24,"id":1,"password":"345","userName":"Maven1库"}

 

效果如下:

技术分享图片

2、 Http请求问题

这个应该是大家比较关心的问题,既然RAP这么强大,如何根据URL请求RAP中编写好的接口,让前端调用该接口和调用服务端一样返回数据呢?

点击这里进入该接口的控制台:

技术分享图片

在控制台中点击请求,这里返回了我们之前导入的JSON数据:

技术分享图片

点击请求时,右下角出现了一个请求url,该url就是以页面右上角的请求根路径拼上我们编写接口文档时设置的请求Url获得的,前端可通过该路径进行开发测试,切换到线上版本注释掉该路径更换为线上版本的路径就可以了,是不是很方便?

1
http://localhost:8803/mockjs/2/user/showUser?

RAP的使用方式就写到这里,我目前主要进行服务端开发,编写好接口后直接在RAP中进行同步,前端不需要等我把最新的项目部署到服务器,直接根据RAP接口进行开发,提升了工作效率,减少了沟通时间。

Linux 下的部署与windws下没有太大区别,无非是启动redis、将RAP的war包修改成ROOT放到Tomcat的webapp下(RAP官方指出该项目必须放在ROOT下),启动tomcat进行编译,修改RAP的数据库配置文件,再次进行发布就可以了,如果公司有需要可以换换logo,就可以拿出来用了。

构建前端Mock Server--RAP部署及使用

标签:sed   次数   doc   data   bst   连接   根据   控制   mit   

原文地址:https://www.cnblogs.com/qxyong/p/8146323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!