Giter Club home page Giter Club logo

yapi's Introduction

YApi Pro 说明

YApi 是一个非常优秀的项目,只是基本没有维护了。所以我们考虑新开一个分支(YApi Pro)接手维护,希望更多人能参与进来。 YApi Pro 是 YApi 的长期维护分支,我们将长期维护,及时更新、处理问题,欢迎更多社区的小伙伴一起参与。

YApi Pro 在线版本

我们将长期维护YApi的在线版本,推荐使用:https://yapi.pro

在线版本可以节省大量的安装维护成本,我们有专人维护服务器,解决安全问题等,可以放心使用。 可避免因没有及时处理安全漏洞等原因造成自己服务器被入侵勒索等。

最近更新

v1.9.3 (2021-07-13)

  1. 修复 mockJs 运行沙盒漏洞 (近期服务因为漏洞被攻击的问题)
  2. 修复 jsf.extend 依赖问题(安装时报错的问题)
  3. 修复 yapi-cli 无法更新到最新版的问题(改用:yapi-pro-cli)
  4. 增加 Dockerfile 文件,发布 Dockerfile 镜像

仓库

  1. github:https://github.com/yapi-pro
  2. gitee:https://gitee.com/yapi-pro/yapi (国内镜像)
  3. Docker 镜像:https://hub.docker.com/r/yapipro/yapi

YApi Pro 提供 Docker 镜像,可以直接通过 Docker 安装部署,方便快捷

从 YApi 升级到 YApi Pro

原来安装了 YApi 的用户,可以无缝升级到最新版的 YApi Pro,运行以下命令即可升级。

npm install -g yapi-pro-cli --registry https://registry.npm.taobao.org
yapi update 

交流群

使用问题可在群里咨询,我们基本上都能比较及时的回复

YApi微信群 QQ群

YApi 可视化接口管理平台

体验地址:

https://yapi.pro

文档:

hellosean1025.github.io/yapi

平台介绍

avatar

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

QQ交流群:

644642474 主群可能已满

941802405 群2欢迎加入

特性

  • 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
  • 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
  • 类似 postman 的接口调试
  • 自动化测试, 支持对 Response 断言
  • MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
  • 支持 postman, har, swagger 数据导入
  • 免费开源,内网部署,信息再也不怕泄露了

内网部署

环境要求

  • nodejs(7.6+)
  • mongodb(2.6+)
  • git

安装

使用我们提供的 yapi-pro-cli 工具,部署 YApi 平台是非常容易的。执行 yapi server 启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱,默认密码为 yapi.pro 登录系统(默认密码可在个人中心修改)。

npm install -g yapi-pro-cli --registry https://registry.npm.taobao.org
yapi server 

服务管理

利用pm2方便服务管理维护。

npm install pm2 -g  //安装pm2
cd  {项目目录}
pm2 start "vendors/server/app.js" --name yapi //pm2管理yapi服务
pm2 info yapi //查看服务信息
pm2 stop yapi //停止服务
pm2 restart yapi //重启服务

升级

升级项目版本是非常容易的,并且不会影响已有的项目数据,只会同步 vendors 目录下的源码文件。

cd  {项目目录}
yapi ls //查看版本号列表
yapi update //更新到最新版本
yapi update -v {Version} //更新到指定版本

教程

YApi 插件

代码生成

YApi docker部署(非官方)

YApi 一些工具

YApi 的一些客户

  • 去哪儿
  • 携程
  • 艺龙
  • 美团
  • 百度
  • 腾讯
  • 阿里巴巴
  • 京东
  • 今日头条
  • 唯品支付
  • 链家网
  • 快手
  • 便利蜂
  • 中商惠民
  • 新浪
  • VIPKID
  • 马蜂窝

Authors

License

Apache License 2.0

yapi's People

Contributors

2234839 avatar aimuz avatar amiezhang avatar amnsss avatar ariesly15 avatar billlucky avatar chenguangwu avatar chenlizhi55 avatar congqiu avatar dear-lizhihua avatar dependabot[bot] avatar dwb1994 avatar fjc0k avatar furioncs avatar gandao avatar gaoxiaomumu avatar hellosean1025 avatar jason-joo avatar jayzou avatar jessezhang001 avatar kangofchen avatar lwg529 avatar myherux avatar onvno avatar redhatxl avatar ryan-miao avatar shouldnotappearcalm avatar tangcent avatar wxxcarl avatar yuu2lee4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

yapi's Issues

请问markdown 类型的wiki支持渲染mermaid吗

版本号

~

什么问题

~

如何复现此问题

~

什么浏览器

~

什么系统(Linux, Windows, macOS)

例如:

sequenceDiagram
    Alice->>+John: Hello John, how are you?
    Alice->>+John: John, can you hear me?
    John-->>-Alice: Hi Alice, I can hear you!
    John-->>-Alice: I feel great!
Loading

并不能渲染成功

点击编辑的时候,raw类型的Body显示的不对,同时导出html和markdown时,Body内容是空的,导不出来!!!

版本号

~
v1.9.1
v1.9.2
v1.9.3
所有版本都有这个问题

什么问题

~
点击编辑的时候,Body显示的不对(一直显示{"type":"object","title":"empty object","properties":{}}),预览是对的。点一下运行,再点回编辑就对了。

如何复现此问题

~
新建一个接口,然后选post请求,然后点击Body,点击raw,然后输入值,然后刷新页面。然后点击编辑的时候,Body显示的不对(一直显示{"type":"object","title":"empty object","properties":{}}),然后点击预览是对的。然后点一下运行,然后再点回编辑Body显示就又对了。

点击导出html或者markdown,Body内容都是空的,导不出来

什么浏览器

~
Chrome 版本 92.0.4515.107(正式版本) (64 位)

什么系统(Linux, Windows, macOS)

Windows

点击接口,出现空白页

版本号

~
1.9.5

什么问题

~
点击自己的项目后,再选择接口,直接跳转空白页.前端调用接口也无效

如何复现此问题

~
点击自己的项目后,再选择接口

什么浏览器

~
谷歌

什么系统(Linux, Windows, macOS)

win

K8s环境下,容器被调度到其他节点,会初始化报错

版本号

~ 1.9.5

什么问题

~ K8s环境下,容器被调度到其他节点,会初始化报错

如何复现此问题

~ 将容器删除,然后重新起一个服务,连接之前已经初始化号的数据库,此时应用会初始化报错,希望先查询是否初始化过服务,因为文件在docker中没有挂在,容器被调度到其他节点,服务就挂掉了

什么浏览器

~ any

什么系统(Linux, Windows, macOS)

any

接口编辑页的json视图会有双图标

版本号

1.9.5

什么问题

接口编辑页的json视图会有双图标
image

如何复现此问题

~

什么浏览器

~ edge

什么系统(Linux, Windows, macOS)

windows11

怎么让response字段全部返回

版本号

~ 1.9.3

什么问题

~
请问怎么让返回的内容包含定义的所有的字段
有时候这样

{
"createdBy": "magna dolore pariatur",
"createdTime": "2016-12-23T20:12:29.083Z",
"description": "reprehenderit ut laborum ex",
"id": 450000201701227900,
"isSystem": "ipsum",
"updatedTime": "2015-05-04T04:08:21.981Z"
}

有时候返回是这样

{
"createdBy": "magna dolore pariatur",
"createdTime": "2016-12-23T20:12:29.083Z",
"description": "reprehenderit ut laborum ex",
"id": 450000201701227900,
}

如何复现此问题

~ 必现

什么浏览器

~ chrome

什么系统(Linux, Windows, macOS)

~ mac

接口配置参数时,当VALUE包含“+”时,在运行时会被转译成“%2B”,从而导致报错400。

版本号

~ 官网注册账号试玩

什么问题

~
接口配置参数时,当VALUE包含“+”时,在运行时会被转译成“%2B”,从而导致报错400。

如何复现此问题

如InfluxDB带的接口:http://XXXX/query?q=SHOW+DATABASES&db=_internal
1、添加接口时,配置的path为:query
2、编辑时分别配置参数:q:SHOW+DATABASES db:_internal后保存。
3、运行的时候,抓包可以看到“+”号被转译成了“#2B”,导致报错400。
从期望说看,这里不转译更完美。

什么浏览器

chrome

什么系统(Linux, Windows, macOS)

macOS

使用 docker 创建在 arm 上面时出现错误

版本号

docker 1.9.5

什么问题

运行在 arm 架构的服务器上时,运行报错

Fatal process OOM in insufficient memory to create an Isolate

如何复现此问题

docker run -d --name yapi --restart always yapipro/yapi server/app.js

什么浏览器

x

什么系统(Linux, Windows, macOS)

[root@miacis-h0 YApi]# uname -a
Linux miacis-hw-00 4.18.0-80.7.2.el7.aarch64 #1 SMP Thu Sep 12 16:13:20 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
[root@miacis-h0 YApi]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (AltArch)

yapi-pro1.9.5版本高级mock的自定义脚本功能有问题

版本号

~
1.9.5

什么问题

~
高级MOCK的自定义脚本有问题,只要开启了高级mock脚本功能,接口访问就直接未响应,用了1.9.1版本就没有这个问题

如何复现此问题

~

什么浏览器

~

什么系统(Linux, Windows, macOS)

断言执行报错

版本号

1.9.5

什么问题

执行断言报只读权限报错

验证结果
执行脚本:assert.equal(body.responseCode, 0)
,
Error: EROFS: read-only file system, mkdir '/sys/fs/cgroup/memory/safeify'

如何复现此问题

执行脚本:assert.equal(body.responseCode, 0)

什么浏览器

chrome

什么系统(Linux, Windows, macOS)

CentOS Linux release 8.5.2111

能否 禁用访客用户的接口运行权限

版本号

1.9.5

什么问题

如题,希望完善权限设置。
对于单个接口查看时,能否对于“运行”功能加上权限,游客只可访问查看该接口,但是不能运行。
以防止游客误操作该接口导致系统出问题。

如何复现此问题

创建用户,该用户对于该接口/项目权限设置为“游客”

什么浏览器

Chrome

什么系统(Linux, Windows, macOS)

macOS

两个叠加的图标

版本号

~ 1.9.5

什么问题

~编辑图标变成了两个

如何复现此问题

~

什么浏览器

~

什么系统(Linux, Windows, macOS)

Linux

image

编辑接口返回数据时图标重复

版本号

1.9.5

什么问题

编辑图标重复

如何复现此问题

接口 ---> 编辑 ---> 返回数据设置

什么浏览器

chrome

什么系统(Linux, Windows, macOS)

Windows

初始化 admin 账号密码,提示错误

版本号

镜像 yapipro/yapi:1.9.5

什么问题

docker run --network mynetwork --rm -it -v $PWD/config.json:/yapi/config.json yapipro/yapi server/install.js
log: mongodb load success...
初始化管理员账号成功,账号名:"[email protected]",密码:"ymfe.org"

初始化账号后提示的密码是错的,还好我猜出了默认密码是 yapi.pro

如何复现此问题

docker run --network mynetwork --rm -it -v $PWD/config.json:/yapi/config.json yapipro/yapi server/install.js

什么浏览器

~

什么系统(Linux, Windows, macOS)

登陆进去刷新不出来组数据

环境:centos7,docker
将yapi-1.9.3到yapi-1.9.5三个版本的源码通过以下命令构建
npm run build-client
登陆进去后组信息一直刷不到,如下图
J RXX5}67M}E9WOF~A5@BI0

但新添加一个组后就可以全部刷出来,从1.9.3到1.9.5三个版本都验证了
如何解决

这是什么报错信息

版本号

~

什么问题

~

如何复现此问题

~

什么浏览器

~
image

什么系统(Linux, Windows, macOS)

接口mock的数组为空

版本号

~ 最新版本

什么问题

~接口-->编辑-->模板选择中,array数组的item--->预览效果数组为空

如何复现此问题

~ 定义一个接口
~ 进入接口详情
~ 点击tab“编辑”
~ “返回数据设置” -->JSON--》模板--》添加子节点为array---》array的子节点选择object--》添加子节点A,类似如下结构
[
{
a: '',
b: ''
}
]
~ “预览” 返回的数组为空

什么浏览器

~ Chrome

什么系统(Linux, Windows, macOS)

Windows

从yapi 转到 yapi-pro 安装异常

版本号

~ yapi 1.9.2

什么问题

~ 执行 npm install -g yapi-pro-cli --registry https://registry.npm.taobao.org
出现问题:

6213 error code EEXIST
6214 error syscall symlink
6215 error path ../lib/node_modules/yapi-pro-cli/bin/yapi-cli
6216 error dest /home/node/nodejs/node_global/bin/yapi
6217 error errno -17
6218 error EEXIST: file already exists, symlink '../lib/node_modules/yapi-pro-cli/bin/yapi-cli'
6219 error File exists: /home/node/nodejs/node_global/bin/yapi
6220 error Remove the existing file and try again, or run npm
6221 error with --force to overwrite files recklessly.
6222 verbose exit [ -17, true ]
yapi

如何复现此问题

~
按照yapi文档安装yapi-cli,使用PM2管理服务

什么浏览器

~ Chrome windows 10, 91.0.4472.164(正式版本) (64 位)

什么系统(Linux, Windows, macOS)

CentOS Linux release 7.4.1708
node v14.16.1

考虑支持websocket吗?

版本号

~ all

什么问题

~ all

如何复现此问题

~ all

什么浏览器

~ all

什么系统(Linux, Windows, macOS)

all

node版本问题

做二次开发,14版本会报错,请问目前支持的最高版本是哪个,谢谢!

设置请求头Referer无效

版本号

~ 1.11.0

什么问题

~ 设置请求头Referer无效,chrome cross-request插件错误提示 Refused to set unsafe header "referer"
image

如何复现此问题

~ 随便一个请求,设置请求头 Referer,request header中无referer

什么浏览器

~ chrome 123.0.6312.122(正式版本) (64 位)

什么系统(Linux, Windows, macOS)

windows、linux都不行

如何参与维护

版本号

~

什么问题

~

如何复现此问题

~

什么浏览器

~

什么系统(Linux, Windows, macOS)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.