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


      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,就可以拿出來用了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM