PApi 开源接口管理平台搭建部署

官网:https://yapi.ymfe.org/

GitHub:https://github.com/YMFE/yapi

yapi 是什么

YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。提供了 api 文档管理,api 数据 模拟(Mock),调试和自动化测试 api 等功能可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

主要解决前后端分离带来的以下痛点:

1、接口文档不可靠。很多小伙伴管理接口文档,有使用wiki的,有word文档的,甚至还有用聊天软件口口相传的,后端接口对于前端就像一个黑盒子,经常遇到问题是接口因未知原因增加参数了,参数名变了,参数被删除了。

2、mock 数据生成方案没有统一出口。我们都有这样的经历,前端开发功能依赖后端,解决方案有自己在代码注入json的,还有后端工程师临时搭建一套测试数据服务器,这种情况下势必会影响工作效率和代码质量,也不能及时进行更新。

3、资源分散,无法共享。接口调试每个开发者单独维护一套Postman接口集,每个人无法共用其他人的接口集,存在大量重复填写请求参数工作,最重要的是postman没法跟接口定义关联起来,导致后端没有动力去维护接口文档。

4、集成 api 自动化测试困难。yapi 提供了可视化的 api 自动化测试方案,只需要简单的填写参数,增加断言,就能实现 api 自动化测试。

YApi工作流:


特性

基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍

扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性

类似 postman 的接口调试

自动化测试, 支持对 Response 断言

MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据

支持 postman, har, swagger 数据导入

免费开源,内网部署,信息再也不怕泄露了

内网部署(以RHEL/CentOS为例)

环境要求

nodejs(7.6+)

mongodb(2.6+)

安装nodejs

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

yum -y install nodejs

***如果没有编译环境,则需要yum install gcc-c++ make -y

安装配置MongoDB数据库

[@bx_70_32 /etc/yum.repos.d]# cat mongodb-org-3.6.repo

[mongodb]

name=MongoDB Repository

baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/

gpgcheck=0

enabled=1

[@bx_70_32 /etc/yum.repos.d]#  yum -y install mongodb-org

service mongod start

***netstat -tnlp | grep 27017 确认一下MongoDB服务是否启动

***/etc/mongod.conf根据需求可自行修改路径

初始化MongoDB数据库

[@bx_70_32 ~]# mongo

MongoDB shell version: 2.6.12

connecting to: test

> use yapi

switched to db yapi

> db.addUser('yapi','xxxxxx')

WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead

Successfully added user: { "user" : "yapi", "roles" : [ "dbOwner" ] }

>show dbs

admin 0.078GB

local  0.078GB

yapi  0.078GB

安装与配置YApi工具

[@bx_70_32 /opt/apps_install]# mkdir yapi

[@bx_70_32 /opt/apps_install]# cd yapi/

解压,压缩包可以从上述GitHub下载需要的release版本

[@bx_70_32 /opt/apps_install/yapi]# tar zxvf yapi-1.3.7.tar.gz

安装yapi工具包

[@bx_70_32 /opt/apps_install/yapi]# cd yapi-1.3.7

[@bx_70_32 /opt/apps_install/yapi/yapi-1.3.7]# npm install -g yapi-cli --registry https://registry.npm.taobao.org

/usr/bin/yapi -> /usr/lib/node_modules/yapi-cli/bin/yapi-cli

/usr/bin/yapi-cli -> /usr/lib/node_modules/yapi-cli/bin/yapi-cli

+ yapi-cli@1.2.5

added 250 packages in 15.183s

修改配置文件

[@bx_70_32 /opt/apps_install/yapi/yapi-1.3.7]# cp config_example.json config.json

[@bx_70_32 /opt/apps_install/yapi/yapi-1.3.7]# vim config.json

  "port": "3000",

  "adminAccount": "admin@admin.com",

  "db": {

    "servername": "127.0.0.1",

    "DATABASE":  "yapi",

    "port": 27017,

    "user": "yapi",

    "pass": "xxxxxx"

  },

  "mail": {

    "enable": false,

    "host": "smtp.163.com",

    "port": 465,

    "from": "***@163.com",

    "auth": {

        "user": "***@163.com",

        "pass": "*****"

    }

  }

}

[@bx_70_32 /opt/apps_install/yapi/yapi-1.3.7]# vim server/yapi.js

const config = require('../config.json');

安装node模块

[@bx_70_32 /opt/apps_install/yapi/yapi-1.3.7]# npm install --production --registry https://registry.npm.taobao.org

> dtrace-provider@0.8.6 install /opt/apps_install/yapi/yapi-1.3.7/node_modules/dtrace-provider

> node-gyp rebuild || node suppress-error.js

make: Entering directory `/opt/apps_install/yapi/yapi-1.3.7/node_modules/dtrace-provider/build'

  TOUCH Release/obj.target/DTraceProviderStub.stamp

make: Leaving directory `/opt/apps_install/yapi/yapi-1.3.7/node_modules/dtrace-provider/build'

> jsonpath@1.0.0 postinstall /opt/apps_install/yapi/yapi-1.3.7/node_modules/jsonpath

> node lib/aesprim.js > generated/aesprim-browser.js

npm WARN yapi@1.3.7 license should be a valid SPDX license expression

added 324 packages in 53.689s

安装yapi软件

[@bx_70_32 /opt/apps_install/yapi/yapi-1.3.7]# npm run install-server

> yapi@1.3.7 install-server /opt/apps_install/yapi/yapi-1.3.7

>  node server/install.js

log: mongodb load success...

初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"

启动服务

[@bx_70_32 /opt/apps_install/yapi/yapi-1.3.7]# node server/app.js &

log: the server is start at 127.0.0.1:3000

log: mongodb load success...

访问http://ip:3000即可


另附上一个谷歌浏览器插件,后续在YApi调试接口中会用到 crossRequest

链接: https://pan.baidu.com/s/1HhVH5Dr8oGEnLB6S5h546w 密码: 15d7 ---绿色无毒,放心下载

代理方式:

如果是从nginx代理,请配置nginx支持websocket

在location /添加

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

proxy_pass http://ip:port;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容