Code Monkey home page Code Monkey logo

doclever's Introduction

什么是DOClever?

DOClever是一个商业化开源产品,完全免费。无论你是前端工程师,还是后端工程师,接口永远都是两者交互的桥梁,所以DOClever专为中小型团队量身打造,旨在解决接口的管理,测试与数据生成,实现真正的一体化解决方案。

DOClever接下来的开发计划

4.13 重制版发布(server端,网页端,桌面端重构完成,包括bug fix,前端UI共用一套,前端路由,重写导出功能,完善多语言,添加日志系统,实现缓存桥接)

4.20 支持接口鉴权 添加类似postman快速测试的功能 开放接口,项目和团队的对外api

5.1 支持websocket测试 ,支持webservice测试 添加数据库支持,可以测试sql语句,可以匹配接口结果 开放测试,文档的对外api

5.10 重构自动化测试功能

5.20 在桌面端添加分布式压力测试

6.1 开发微信服务号功能

DOClever有哪些功能

1.可以对接口信息进行编辑管理,支持get,post,put,delete,patch五种方法,支持http和https协议,并且支持query,body,json,raw,rest,formdata的参数可视化编辑。同时对json可以进行无限层次可视化编辑。并且,状态码,代码注入,markdown文档等附加功能应有尽有。

2.接口调试运行,一个都不能少,可以对参数进行加密,从md5到aes一应俱全,返回参数与模型实时分析对比,给出不一致的地方,找出接口可能出现的问题。如果你不想手写文档,那么试试接口的数据生成功能,可以对接口运行的数据一键生成文档信息。

3.mock的无缝整合,DOClever自己就是一个mock服务器,当你把接口的开发状态设置成已完成,本地mock便会自动请求真实接口数据,否则返回事先定义好的mock数据。

4.支持postman,rap,swagger的导入,方便你做无缝迁移,同时也支持html文件的导出,方便你离线浏览!

5.项目版本和接口快照功能并行,你可以为一个项目定义1.0,1.1,1.2版本,并且可以自由的在不同版本间切换回滚,再也不怕接口信息的遗失,同时接口也有快照功能,当你接口开发到一半或者接口需求变更的时候,可以随时查看之前编辑的接口信息。

6.自动化测试功能,目前市面上类似平台的接口自动化测试大部分都是伪自动化,对于一个复杂的场景,比如获取验证码,登陆,获取订单列表,获取某个特定订单详情这样一个上下文关联的一系列操作无能为力。而DOClever独创的自动化测试功能,只需要你编写极少量的javascript代码便可以在网页里完成这样一系列操作,同时,DOClever还提供了后台定时批量执行测试用例并把结果发送到团队成员邮箱的功能,你可以及时获取接口的运行状态。

7.团队协作功能,很多类似的平台这样的功能是收费的,但是DOClever觉得好东西需要共享出来,你可以新建一个团队,并且把团队内的成员都拉进来,给他们分组,给他们分配相关的项目以及权限,发布团队公告等等。

8.DOClever开源免费,支持内网部署,很多公司考虑到数据的安全性,不愿意把接口放到公网上,没有关系,DOClever给出一个方便快捷的解决方案,你可以把平台放到自己的内网上,完全不需要连接外网,同时功能一样也不少,即便是对于产品的升级,DOClever也提供了很便捷的升级方案!

产品文档

http://doclever.cn

DOClever开源

本次开源的是DOClever的内网版本,可以直接部署到内网中,和线上版本在功能上是完全一样的,区别在于:

1.线上的系统用了前端和后端两套工程,并且用nginx做了负载均衡,redis做缓存,而内网版本合并为一个工程,直接用node做静态服务器,取消了缓存,这样对于很多中小型团队来说很轻便而且也够用了。

2.线上系统在安全性方面做了不少加固处理,而内网版本默认内网是安全的,也为了提高node作为服务器的效率,取消了很多加固处理,如果用户有需要可以自行添加。

3.开源版本去掉了线上的宣传和介绍页面,只留下最精简的功能页面。

源码结构

Server为服务端,Client为网页端,Desktop为桌面端(编译桌面端需要安装electron相关npm包)

如何部署

1.首先本地要安装node环境,推荐8.11.1版本(下载页面)

2.安装mongodb(下载页面),可使用robomongo来作为mongodb的客户端工具(下载页面),启动mongodb后(如何启动),用robomongo来连接,新建一个database作为DOClever的数据库(名称随意)

源码部署

将DOClever的源码down到本地,在命令行下运行node DOClever的根目录/Server/bin/www(如果是windows环境下,请修改目录分隔符),第一次启动,会出现命令行提示符,按照提示符输入即可完成相关的配置,等到DOClever启动成功后, 在浏览器里输入localhost:DOClever启动的端口号,出现首页表示部署成功。

npm部署

在命令行下运行npm install doclever -g,等doclever包安装成功后,运行doclever进行第一次配置(如果有问题,就运行doclever --installwithsetup)

问题反馈

如果你有任何问题和建议,请在issues里面指出,每个月的1号和15号会发布功能迭代版本,根据bug情况不定期的会发布bug迭代版本。如果你想加入开源的大家庭,欢迎加入qq群:611940610

注意

本系统已申请专利著作权,请不要私自用于商业用途,如有发现,我们将保留对你的法律责任追究!

doclever's People

Contributors

johnzhao1208 avatar pollyduan avatar sx1989827 avatar toimc 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  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

doclever's Issues

关于存储的数据文件

作者您好,存储doclever相关数据的文件,应该都是在mongodb里吧? 我看了DOCKERFILE里的内容,只是apt安装了mongodb,没设置相关的数据文件路径,那应该是使用默认路径,也就是/var/lib/mongodb,可是很奇怪容器中这个路径下并没有数据文件,请问是在哪里做了修改呢?也没找到相关的设置,谢谢

docker的运行命令说明

原来的docker运行命令是docker run -d --name doclever -p 10000:10000 lw96/doclever ,
建议做一下修改,可以允许把数据文件夹存放在宿主机,看了Dockerfile,猜想数据文件是放在容器的文件夹 /data/db里的,启动命令是否应该改成docker run -d -v 宿主机目录:/data/db / --name doclever -p 10000:10000 lw96/doclever

DOClever后台添加用户总是报错

为什么我在DOClever后台添加用户的时候,在单击保存按钮后,总是提示,参数state必须为Number?
doclever_error
还有就是,怎么去除前台用户注册功能,只通过后台管理员添加用户来完成用户的添加,只能是手动改前端代码吗?

docker run的正确写法是什么?

我这样写的:
docker run --name mydoclever -p 8989:8989 -v /myapp/doclever_home lw96/doclever
然后就一直跳这样提示
2017-11-06 14:32:46,524 INFO success: DOClever entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-11-06 14:32:46,905 INFO exited: DOClever (exit status 1; not expected)
2017-11-06 14:32:47,907 INFO spawned: 'DOClever' with pid 27844
已经跳一夜了

支持导入postman编写的接口

postman是一个很常用的接口测试工具,它可以生成各种语言的测试代码,或者自动化测试HTTP接口。postman可以把接口定义导出为JSON文件,希望本项目能够支持导入这种接口定义的JSON文件,这样就可以很方面的在SBDoc修改,添加描述、备注,生成文档了。

环境变量

全局环境变量长度有限, laravel 的 access_token 比较长, 无法保存全部

docker build Step 3/9 failed

Status: Downloaded newer image for node:6.10.3
---> 3f3928767182
Step 2/9 : MAINTAINER pollyduan [email protected]
---> Running in 328e5c6029c8
---> 7d5fcf195679
Removing intermediate container 328e5c6029c8
Step 3/9 : RUN apt-get update && apt-get install -yqq supervisor mongodb && apt-get clean && rm -rf /var/lib/apt/lists/*
---> Running in cdaace371d34
Err http://security.debian.org jessie/updates InRelease

Err http://security.debian.org jessie/updates Release.gpg
Could not resolve 'security.debian.org'
Err http://deb.debian.org jessie InRelease

Err http://deb.debian.org jessie-updates InRelease

Err http://deb.debian.org jessie Release.gpg
Could not resolve 'deb.debian.org'
Err http://deb.debian.org jessie-updates Release.gpg
Could not resolve 'deb.debian.org'
Reading package lists...
W: Failed to fetch http://deb.debian.org/debian/dists/jessie/InRelease

W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease

W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease

W: Failed to fetch http://security.debian.org/dists/jessie/updates/Release.gpg Could not resolve 'security.debian.org'

W: Failed to fetch http://deb.debian.org/debian/dists/jessie/Release.gpg Could not resolve 'deb.debian.org'

W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/Release.gpg Could not resolve 'deb.debian.org'

W: Some index files failed to download. They have been ignored, or old ones used instead.
E: Unable to locate package supervisor
E: Unable to locate package mongodb
The command '/bin/sh -c apt-get update && apt-get install -yqq supervisor mongodb && apt-get clean && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100

swagger json specification export required

now, the export json is not the swagger specification, do we have the plan to support this specification, because the swagger have powerful feature such as code generator etc....

请问为什么接口运行的例子里面,没有 path variable 的配置

目前接口运行界面,只有 query 和 header 的设值控件。
但有些 OAS 的 URI 的文档参数是 /teache/{id}/student/{sid} 这种形式的。
如果有可能,应该允许用户把自定义的变量值赋给 uri,并且保存这种变量值,就好像保存 query 一样。

我现在在调试一些带有 path variable 的 URI,把 path variable 错写到 query 里才发现原来没有这种 global variable replacement 的功能,如果用户可以在 URI 定义的时候,定义一个变量而多处使用(比如在多个 query 里面引用同一个 variable 的值),会方便很多,如果能够直接 eval 这些变量的值,还可以起到局部编程的作用。

ps:
我调试的端口路径是个 echo api,大致上是 http://localhost:8888//echo/{word} 这样的 api。
直接访问这样的 uri 是合法的,可以返回 ”{word}“。但在 DOClever 里面不给 word 设值就会出 400 错误。
前端的 advance 页面没有任何错误信息,后台的控制台也都没有任何细节。
感觉这个 proxy 的 uri 有特殊的 URI 校验正则,而且还把错误吞掉了,不利于调试。

图标不合适

建议在接口管理,左边的分组菜单行,右边的图标换成设置或者更多文本。

因为我看那个是编辑,找了半天没法找到新建接口的入口

同时Element-UI的使用可以再研究研究。我可以加入进来吗?

Mock数据的几点疑问

  1. 如果返回结果是一个Array,是否可以生成固定数量的数据?当前只能生成一条数据。
  2. mixed是在应用在什么类型的数据上?

mac Sierra,fibers/bin/darwin-x64-47/fibers.node` is missing

ry running this to fix the issue: /usr/local/Cellar/node/5.10.1/bin/node /usr/local/soft/DOClever-4.0.1/Server/node_modules/fibers/build
/usr/local/soft/DOClever-4.0.1/Server/node_modules/fibers/fibers.js:20
throw new Error('Missing binary. See message above.');
^

Error: Missing binary. See message above.
at Object. (/usr/local/soft/DOClever-4.0.1/Server/node_modules/fibers/fibers.js:20:8)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object. (/usr/local/soft/DOClever-4.0.1/Server/node_modules/asyncawait/src/fibers.js:1:75)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)

本地部署报错

本地部署报let声明错误,使用严格模式启动后又报不支持可变参数错误,我使用的是master分支,node6.10.0,linux下不熟的

qq 20170720141901

bug

导出html功能 有bug 点击无效。生成文档的那个功能

下载地址链接错误

运行 页面 内网环境 的提示中, net.js 的链接是 /resource/net.js 应该是 /html/web/resource/net.js
node环境的下载地址类似.

关于适用中的几点建议与希望支持的功能

界面

  • 现在只有在点击角标出才能展开,希望点击事件应该点击整个栏目触发。

image

  • 栏目文字超出处理

image

  • 现在接口运行方式为_blank一个窗口,体验比较差。

功能

  • 增加全局参数、header、cookie配置
    比如现在的注入功能,我觉得如果有这方面的需求更多的是对接口进行统一处理,这样可以方便作一些统一处理,比如token等
  • 编辑参数,填值时,希望是一个key-value形式
    如果是一些状态值,希望在界面中可以展示中文信息,传值为数字或字符
    image
  • 接口以及接口分组的排序功能

暂时就是上面这些,希望这个项目越来越好!

postman新老版本格式不一

postman v2 新老版本格式不一致。老版本的导入有问题(即使升级到新版本再导出还是有些问题)

POST运行API提示:Cannot read property 'toLowerCase' of undefined

`Cannot read property 'toLowerCase' of undefined

TypeError: Cannot read property 'toLowerCase' of undefined
at onProxy (/home/tianhengrd/deploy/DOClever/Server/routes/proxy/proxy.js:153:28)
at /home/tianhengrd/deploy/DOClever/Server/routes/proxy/proxy.js:214:5
at Layer.handle [as handle_request] (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/layer.js:95:5)
at /home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:277:22
at Function.process_params (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:330:12)
at next (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:271:10)
at Function.handle (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:176:3)
at router (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:46:12)
at Layer.handle [as handle_request] (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:312:13)
at /home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:330:12)
at next (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:271:10)
at logger (/home/tianhengrd/deploy/DOClever/Server/node_modules/morgan/index.js:144:5)
at Layer.handle [as handle_request] (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:312:13)
at /home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:330:12)
at next (/home/tianhengrd/deploy/DOClever/Server/node_modules/express/lib/router/index.js:271:10)`

关于用户管理这块的建议

1.希望能有个管理后台,能统一管理用户的,比如注销删除用户等。现在除非是进数据库操作,否则连存在多少用户都不知道
2.用户的密码不要用明文存储

关于node_modules

第一次见到开源项目中把node_modules放到源码中托管....这种方式感觉很别扭,难怪git clone半小时还没下来。

初始化无法运行

[root@bogon SBDoc-1.1.9]# sudo node SBDoc/bin/www
/data/tools/SBDoc-1.1.9/SBDoc/routes/checkUser.js:16
let bUp=false;
^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object. (/data/tools/SBDoc-1.1.9/SBDoc/app.js:8:15)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)

关于连接的mongo需要验证的问题

对于需要账号密码的mongo数据库可以通过修改配置文件或者其他什么方式完成连接吗?
Unhandled rejection MongoError: not authorized on DOClever to execute command { find: "infos", filter: {}, projection: {}, limit: 1, batchSize: 1, singleBatch: true } at Function.MongoError.create (/opt/node_webapp/DOClever/Server/node_modules/mongodb-core/lib/error.js:31:11) at queryCallback (/opt/node_webapp/DOClever/Server/node_modules/mongodb-core/lib/cursor.js:212:36) at /opt/node_webapp/DOClever/Server/node_modules/mongodb-core/lib/connection/pool.js:455:18 at _combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9)

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.