我這裏要用作mockserver的就是rap了,rap結合了團隊管理,項目管理,文檔編寫、Mock.js、可視化、接口過渡、文檔歷史版本(贊)、mock插件(線上線下切換就只須要註釋一句代碼就OK),支持本地部署。html
因爲官網講解的太模糊了 ,並且圖也不配一個 讓人以爲好寒蟬啊!git
展現地址:http://rap.taobao.org/org/index.do 感受若是擔憂數據接口安全問題,那麼就須要走下一步了,搭建屬於本身團隊的服務器!github
參考搭建地址1:http://blog.csdn.net/xinxin19881112/article/details/52279778 (這個講解的比較全了 雖然有幾處是不完善的,待我給他補上)ajax
參考搭建地址2:http://www.cnblogs.com/dothin/p/5361883.html (這個講解的比較全了 雖然有幾處是不完善的,待我給他補上)redis
感受是否是天下文章一大抄的感受,不過也不影響咱們的進程。sql
我把用到的安裝包統一放到百度雲盤中,文件名稱:rap搭建所須要的工具包數據庫
接下來該我補充上面文章中所欠缺說明的東西!express
我先秀一下本身的本地成果先:json
這是須要本地啓動的三個服務;緩存
本地訪問的界面效果
本身小測試了一下下
如下說明所有補充的是:參考搭建地址1
1。當連接好本地數據庫後須要執行一段腳本,建立本地的數據庫!
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.
而後再執行一下下面這句
SET @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
好 看看本地數據是否有了對應的表接口如圖:
2 裏面說的安裝redis 地址就是坑有沒有呢?
下載地址:https://github.com/dmajkic/redis/downloads (下載好對應的文件 進行解壓後 把好比個人電腦是64位的那把這個文件拷貝到D:盤的一個新文件夾中)
而後做者應該是筆誤了 關於執行路徑寫錯了 下圖應該是第二個執行命令 注意順序(在本身的文件夾中去執行對應的命令)
最後三個服務一塊兒啓動好了,若是登錄不成功 很正常從新註冊一個用戶,而後驗證有點小坑 不過不影響大局給!
最後的最後 但願你們安裝愉快!
工具包集合:百度雲盤下載地址
連接:http://pan.baidu.com/s/1i5scmKP 密碼:uzhm