API文档管理平台

摘要:
如果有一个统一的api文档管理平台,每个开发,把自己维护的接口录入进去。你可以使用Showdoc来编写在线API文档、技术文档、数据字典、在线手册。
一、应用场景

在公司中,有很多开发,每个人维护的api接口是不一样的。如果有一个统一的api文档管理平台,每个开发,把自己维护的接口录入进去。

之后再开发别的功能时,不需要重复造轮子,直接调用就可以了。有新员工入职时,也可以快速上手!

关于api文档管理,网上有很多。有在线收费的,也有开源的。基于节省成本考虑,这里主要介绍2个开源工具:ShowDoc和YApi。

下面会详细介绍着2个工具的使用方法,都是基于docker安装的!

二、ShowDoc

ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。你可以使用Showdoc来编写在线API文档、技术文档、数据字典、在线手册。

官方地址:

https://www.showdoc.cc/

基于docker安装

本文所使用的系统是ubuntu-16.04.5-server-amd64,先安装docker

apt-get install -y docker.io
apt-get clean all

下载国内镜像

docker pull registry.docker-cn.com/star7th/showdoc

新建存放showdoc数据的目录

mkdir /showdoc_data
mkdir /showdoc_data/html
chmod 777 -R /showdoc_data

启动showdoc容器。启动完了后别忘记后面还有转移数据的步骤。

docker run -d --name showdoc -p 4999:80 -v /showdoc_data/html:/var/www/html/ registry.docker-cn.com/star7th/showdoc

转移数据

docker exec showdoc cp -fr /showdoc_data/html/ /var/www/

设置权限

chmod 777 -R /showdoc_data

根据以上命令操作的话,往后showdoc的数据都会存放在 /showdoc_data/html 目录下。
你可以打开 http://localhost:4999来访问showdoc。账户密码是showdoc/123456

访问页面

http://192.168.91.128:4999

效果如下:

API文档管理平台第1张

点击进入首页

API文档管理平台第2张

点击右侧的登录,输入用户名和密码

API文档管理平台第3张

登录之后,点击新建项目

API文档管理平台第4张

输入项目名和描述,点击提交

API文档管理平台第5张

项目就创建好了,点击项目

API文档管理平台第6张

点击左侧的添加按钮

API文档管理平台第7张

点击插入API接口模板,点击右侧的保存

可以看出,左边就是markdown格式,右边就是预览效果

API文档管理平台第8张

保存之后,点击返回,效果如下:

API文档管理平台第9张

ok,到这里,一个api文档就完成了。关于showdoc其他操作,请参考链接:

https://www.showdoc.cc/help?page_id=65610

是不是很Nice!那么问题来了,开发要测试这个接口怎么办?

打开postman,输入上面的请求url,选择POST请求,输入参数.....

是不是很麻烦?还得让开发安装postman,进行一系列操作。

那么有没有直接在这个网页上,集成postman功能,可以直接发送POST请求,查看返回结果呢?

有,那就是YApi。

三、YApi(推荐)

介绍

Yapi 由 YMFE 开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护 API。

  • 权限管理
    YApi 成熟的团队管理扁平化项目权限配置满足各类企业的需求

  • 可视化接口管理
    基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率

  • Mock Server
    易用的 Mock Server,再也不用担心 mock 数据的生成了

  • 自动化测试
    完善的接口自动化测试,保证数据的正确性

  • 数据导入
    支持导入 swagger, postman, har 数据格式,方便迁移旧项目

  • 插件机制
    强大的插件机制,满足各类业务需求

官方地址:
https://yapi.ymfe.org/

使用 Docker 构建 Yapi

1、创建 MongoDB 数据卷

docker volume create mongo_data_yapi

2、启动 MongoDB

docker run -d --name mongo-yapi -v mongo_data_yapi:/data/db mongo

3、获取 Yapi 镜像

版本信息可在阿里云镜像仓库查看

docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi

4、初始化 Yapi

初始化数据库索引及管理员账号

docker run -it --rm
  --link mongo-yapi:mongo 
  --entrypoint npm 
  --workdir /api/vendors 
  registry.cn-hangzhou.aliyuncs.com/anoy/yapi 
  run install-server

自定义配置文件挂载到目录/api/config.json,官方自定义配置文件 ->传送门

5、启动 Yapi 服务

docker run -d 
  --name yapi 
  --link mongo-yapi:mongo 
  --workdir /api/vendors 
  -p 3000:3000
  registry.cn-hangzhou.aliyuncs.com/anoy/yapi 
  server/app.js

使用 Yapi

访问http://localhost:3000 登录账号 admin@admin.com,密码 ymfe.org

点击登录

API文档管理平台第10张

输入用户名和密码

API文档管理平台第11张

点击添加项目

API文档管理平台第12张

创建项目

API文档管理平台第13张

点击添加接口

API文档管理平台第14张

输入接口名称和接口路径

API文档管理平台第15张

接口就创建好了,点击编辑,添加参数

API文档管理平台第16张

添加2个参数

API文档管理平台第17张

设置返回数据,点击导入json

API文档管理平台第18张

输入json

API文档管理平台第19张

勾选,表示必须返回。输入备注

API文档管理平台第20张

点击下面的保存,点击预览,效果如下:

API文档管理平台第21张

点击运行,需要安装插件

API文档管理平台第22张

对于最新版的谷歌浏览器,比如版本为70.0.3538.67,它是不允许本地安装的,只能在谷歌商店安装!

点击google商店获取,跳转页面

API文档管理平台第23张

点击右侧的添加,点击添加扩展程序

API文档管理平台第24张

添加完成之后,再次刷新页面,点击运行,效果如下:

API文档管理平台第25张

这上面,就可以输入一些值了。在下面的Response,就会返回结果

API文档管理平台第26张

如果要测试的地址和当前url不匹配,可以手动设置

点击环境设置

API文档管理平台第27张

输入测试服务器的ip和端口号

API文档管理平台第28张

发送POST请求,输入参数

API文档管理平台第29张

返回正确时,效果如下:

API文档管理平台第30张

最后将状态,选择为已完成

API文档管理平台第31张

刷新页面,查看预览,效果如下:

API文档管理平台第32张

Chrome浏览器离线安装插件

在这个页面中,点击手动下载

API文档管理平台第22张

它会下载一个crossRequest.zip文件,将这个文件解压,会得到一个2.8_0.crx

API文档管理平台第34张

将2.8_0.crx的后缀crx改成rar

API文档管理平台第35张

将这个文件解压

API文档管理平台第36张

打开Chrome浏览器,点击更多工具-->扩展程序

API文档管理平台第37张

默认的开发者模式是关闭的

API文档管理平台第38张

将它开启,会出现一个加载已解压的扩展程序

API文档管理平台第39张

点击它,选择刚刚解压的文件夹

API文档管理平台第40张

扩展程序就安装好了!

API文档管理平台第41张

基于DRF的测试接口

假设没有测试接口,可以使用Python的rest framework模块来模拟一个登陆接口。

确保已经安装了以下2个模块

pip3 installDjango
pip3 install djangorestframework

新建项目untitled

API文档管理平台第42张

修改settings.py,注册djangorestframework,最后一行添加

INSTALLED_APPS =[
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app.apps.AppConfig',
    'rest_framework',
]

继续修改settings.py,允许监听所有Ip

ALLOWED_HOSTS = ['*']

修改views.py,增加视图函数

from django.shortcuts importrender
from rest_framework.views importAPIView
from rest_framework.response importResponse
classLoginView(APIView):
    def post(self, request, *args, **kwargs):
        data = {"code": "200", "data": "ok", "error": ""}
        return Response(data)

修改urls.py,增加路由

from django.contrib importadmin
from django.urls importpath,re_path
from app01 importviews
urlpatterns =[
    path('admin/', admin.site.urls),
    re_path(r'^(?P<version>[v1|v2]+)/login', views.LoginView.as_view(), name='login'),
]

修改启动参数

API文档管理平台第43张

监听0.0.0.0

API文档管理平台第44张

启动Django,使用postman测试接口

API文档管理平台第45张

本文参考链接:

https://www.jianshu.com/p/a97d2efb23c5

免责声明:文章转载自《API文档管理平台》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇封装一个获取module.exports内容的方法文献阅读 | The Wheat 660K SNP array demonstrates great potential for marker‐assisted selection in polyploid wheat下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Install Docker on Ubuntu

目前支持的 Ubuntu 版本: Ubuntu Xenial 16.04 (LTS) Ubuntu Wily 15.10 Ubuntu Trusty 14.04 (LTS) Ubuntu Precise 12.04 (LTS) Prerequisites 内核版本不能低于 3.10 $ uname -r 3.11.0-15-generic 如果之前使...

Let's GO(三)

人生苦短,Let's GO Let's GO(一) Let's GO(二) Let's GO(三) Let's GO(四) 今天我学了什么? 1. 结构体(struct) /* type TYPENAME struct { name type ... } */ type person struct { name, city string //这里...

使用百度翻译的API接口

http://api.fanyi.baidu.com/api/trans/product/desktop 这是申请的接口地址,会得到一个APPID和一个钥密 然后下载PHP的对应的代码  有一个PHP文件,把这两个静态变量的值改一下就可以用了   用的话,只要使用一下这个方法就OK了,$from是要翻译的语言类型,中国当然是中文 $to是要翻译成什么语...

jenkins操作手册以及脚本编写

一、在你的本地电脑或者linux服务器上下载安装jenkins: jenkins下载地址:https://jenkins.io/   下载jenkins的war包 下载完后把它部署到你的tomcat上运行:放到tomcat的webapps目录下,启动tomcat,然后通过浏览器访问,如我的电脑上访问:localhost:8080/jenkins 。启动后的...

Laravel API 错误处理:当异常时,如何返回消息

Laravel API 错误处理:当异常时,如何返回消息 原文链接:learnku.com/laravel/t/3…讨论请前往专业的 Laravel 开发者论坛:learnku.com/Laravel    基于 API 的项目开发越来越受欢迎,并且使用 Laravel 就能很容易实现。但是在针对如何处理各种异常的话题很少被提及。所以 API 的使用者们...

注解之----@WebService

@WebService这个标签的作用是什么 原文链接:https://www.cnblogs.com/xinruyi/p/11112061.html 当实现 Web Service 时,@WebService 注释标记 Java 类;实现 Web Service 接口时,标记服务端点接口(SEI)。 (声明webservice服务) 要点:  • 实现...