API文档管理平台
一、应用场景
在公司中,有很多开发,每个人维护的api接口是不一样的。如果有一个统一的api文档管理平台,每个开发,把自己维护的接口录入进去。
之后再开发别的功能时,不需要重复造轮子,直接调用就可以了。有新员工入职时,也可以快速上手!
关于api文档管理,网上有很多。有在线收费的,也有开源的。基于节省成本考虑,这里主要介绍2个开源工具:ShowDoc和YApi。
下面会详细介绍着2个工具的使用方法,都是基于docker安装的!
二、ShowDoc
ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。你可以使用Showdoc来编写在线API文档、技术文档、数据字典、在线手册。
官方地址:
基于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 -R /showdoc_data
启动showdoc容器。启动完了后别忘记后面还有转移数据的步骤。
docker run -d --name showdoc -p : -v /showdoc_data/html:/var/www/html/ registry.docker-cn.com/star7th/showdoc
转移数据
docker exec showdoc \cp -fr /showdoc_data/html/ /var/www/
设置权限
chmod -R /showdoc_data
根据以上命令操作的话,往后showdoc的数据都会存放在 /showdoc_data/html 目录下。
你可以打开 http://localhost:4999 来访问showdoc。账户密码是showdoc/123456
访问页面
http://192.168.91.128:4999
效果如下:

点击进入首页

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

登录之后,点击新建项目

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

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

点击左侧的添加按钮

点击插入API接口模板,点击右侧的保存
可以看出,左边就是markdown格式,右边就是预览效果

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

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 数据格式,方便迁移旧项目插件机制
强大的插件机制,满足各类业务需求
使用 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 : \
registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
server/app.js
使用 Yapi
访问 http://localhost:3000 登录账号 admin@admin.com,密码 ymfe.org
点击登录

输入用户名和密码

点击添加项目

创建项目

点击添加接口

输入接口名称和接口路径

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

添加2个参数

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

输入json

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

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

点击运行,需要安装插件

对于最新版的谷歌浏览器,比如版本为70.0.3538.67,它是不允许本地安装的,只能在谷歌商店安装!
点击google商店获取,跳转页面

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

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

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

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

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

发送POST请求,输入参数

返回正确时,效果如下:

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

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

Chrome浏览器离线安装插件
在这个页面中,点击手动下载

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

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

将这个文件解压

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

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

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

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

扩展程序就安装好了!

基于DRF的测试接口
假设没有测试接口,可以使用Python的rest framework模块来模拟一个登陆接口。
确保已经安装了以下2个模块
pip3 install Django
pip3 install djangorestframework
新建项目untitled

修改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 import render
from rest_framework.views import APIView from rest_framework.response import Response class LoginView(APIView):
def post(self, request, *args, **kwargs):
data = {"code": "", "data": "ok", "error": ""}
return Response(data)
修改urls.py,增加路由
from django.contrib import admin
from django.urls import path,re_path
from app01 import views urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'^(?P<version>[v1|v2]+)/login', views.LoginView.as_view(), name='login'),
]
修改启动参数

监听0.0.0.0

启动Django,使用postman测试接口

本文参考链接:
https://www.jianshu.com/p/a97d2efb23c5
API文档管理平台的更多相关文章
- API文档管理工具-数据库表结构思考.
API文档管理工具-数据库表结构思考. PS: 管理工具只是为了方便自己记录API的一些基本信息,方便不同的开发人员 (App Developer, Restful API Developer)之间的 ...
- REST api文档管理工具
问题: 不同软件/程序在网络中互相传递信息不统一. 交互不便. REST API 作用: RESTful API就是一套协议,用来规范多种形式的前端和同一个后台的交互方式. 原理: 组成/流程/规范: ...
- API文档管理工具
系统庞大之后,前后端分离开发,前端调用后端提供的接口,请求协议一般是 HTTP,数据格式一般是 JSON.后台只负责数据的提供和计算,而完全不处理展现逻辑和样式:前端则负责拿到数据,组织数据并展现的工 ...
- APP后台API文档管理对接(APP后台框架五)
这一章还是总结点API管理工具,也大都是组件来的,关于spring-rest-doc 以为很不错,其实还是有点局限性的: 1,每一个接口文档,都要自己手动设置文档的展示: 2,每一个接口就独立一个文档 ...
- 在线API文档管理工具Simple doc
Simple doc是一个简易的文档发布管理工具,为什么要写Simple doc呢?主要原因还是github的wiki并不好用:没有目录结构,文章没有Hx标签索引,最悲剧的是文章编辑的时候不能直接图片 ...
- API 文档管理工具 (Yapi) Docker Compose部署指南
前言介绍 Yapi 由 YMFE 开源,旨在为开发.产品.测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建.发布.维护 API. 权限管理 YApi 成熟的团队管理扁平化项目权限配置满足各类企 ...
- 一个能快速写出实体类的Api文档管理工具
今天各种MVC框架满天飞,大大降低了编码的难度,写实体类就没有办法回避的一件事了,花大把的时间去做一些重复而且繁琐的工作,实在不是一个优秀程序员的作风,所以多次查找和尝试后,找到一个工具类网站——Ap ...
- 顶尖 API 文档管理工具 (Yapi)
原文地址:https://www.jianshu.com/p/a97d2efb23c5
- UDoc(云平台企业应用级 文档管理产品)
类型: 定制服务 软件包: integrated industry solution collateral 联系服务商 产品详情 解决方案 概要 为企业提供基于云平台企业应用级文档管理产品,尽可能最大 ...
随机推荐
- Python之旅:并发编程之多线程理论部分
一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合 ...
- OpenCV入门指南----人脸检测
本篇介绍图像处理与模式识别中最热门的一个领域——人脸检测(人脸识别).人脸检测可以说是学术界的宠儿,在不少EI,SCI高级别论文都能看到它的身影.甚至很多高校学生的毕业设计都会涉及到人脸检测.当然人脸 ...
- 野指针(Wild pointer)和悬垂指针(dangling pointer)
详细参考如下: Dangling pointer(悬垂指针.迷途指针)和 Wild pointer(野指针) 迷途指针经常出现在混杂使用malloc() 和 free() 库调用: 当指针指向的内存释 ...
- TIME_WAIT状态的一些总结
前言: TCP断开连接的四次握手中, 主动关闭连接的一方的TIME_WAIT状态尤为重要. 1:TCP连接的三次握手和断开的四次挥手 2:由上图可知 在主动关闭的一方, 会经历TIME_WAIT状态, ...
- Python【第三方模块&标准模块】
模块: 模块其实就是一个python文件 1.标准模块.标准包 #python自带的这些模块,直接import就能用的 import string,random,datetime,os,json 2. ...
- Java基础-IO流对象之字节流(Stream)
Java基础-IO流对象之字节流(Stream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现 ...
- JAVA核心技术I---JAVA开发环境配置
一:常常有看到Java SE,Java EE,Java ME,那么他们的区别呢? 1. Java SE(Java Platform,Standard Edition java平台标准版). Java ...
- pandas基础整理
用jupyter写好,直接放到GitHub上面了→_→ 博客链接:https://douzujun.github.io/page/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%9 ...
- css 系统自学笔记2017-12-04
一.几个常用的可以连写的样式属性 1.backgroud: 背景连写:没有先后顺序,都是可选的. 2.font字体属性连写: font: 二.元素分类 块级元素:div p h1~h6 ul li o ...
- JavaScript事件代理入门
事件代理(Event Delegation),又称之为事件委托.是 JavaScript 中常用绑定事件的常用技巧. 顾名思义,“事件代理”即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的 ...