一、应用场景

在公司中,有很多开发,每个人维护的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 -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文档管理平台的更多相关文章

  1. API文档管理工具-数据库表结构思考.

    API文档管理工具-数据库表结构思考. PS: 管理工具只是为了方便自己记录API的一些基本信息,方便不同的开发人员 (App Developer, Restful API Developer)之间的 ...

  2. REST api文档管理工具

    问题: 不同软件/程序在网络中互相传递信息不统一. 交互不便. REST API 作用: RESTful API就是一套协议,用来规范多种形式的前端和同一个后台的交互方式. 原理: 组成/流程/规范: ...

  3. API文档管理工具

    系统庞大之后,前后端分离开发,前端调用后端提供的接口,请求协议一般是 HTTP,数据格式一般是 JSON.后台只负责数据的提供和计算,而完全不处理展现逻辑和样式:前端则负责拿到数据,组织数据并展现的工 ...

  4. APP后台API文档管理对接(APP后台框架五)

    这一章还是总结点API管理工具,也大都是组件来的,关于spring-rest-doc 以为很不错,其实还是有点局限性的: 1,每一个接口文档,都要自己手动设置文档的展示: 2,每一个接口就独立一个文档 ...

  5. 在线API文档管理工具Simple doc

    Simple doc是一个简易的文档发布管理工具,为什么要写Simple doc呢?主要原因还是github的wiki并不好用:没有目录结构,文章没有Hx标签索引,最悲剧的是文章编辑的时候不能直接图片 ...

  6. API 文档管理工具 (Yapi) Docker Compose部署指南

    前言介绍 Yapi 由 YMFE 开源,旨在为开发.产品.测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建.发布.维护 API. 权限管理 YApi 成熟的团队管理扁平化项目权限配置满足各类企 ...

  7. 一个能快速写出实体类的Api文档管理工具

    今天各种MVC框架满天飞,大大降低了编码的难度,写实体类就没有办法回避的一件事了,花大把的时间去做一些重复而且繁琐的工作,实在不是一个优秀程序员的作风,所以多次查找和尝试后,找到一个工具类网站——Ap ...

  8. 顶尖 API 文档管理工具 (Yapi)

    原文地址:https://www.jianshu.com/p/a97d2efb23c5

  9. UDoc(云平台企业应用级 文档管理产品)

    类型: 定制服务 软件包: integrated industry solution collateral 联系服务商 产品详情 解决方案 概要 为企业提供基于云平台企业应用级文档管理产品,尽可能最大 ...

随机推荐

  1. QT 登陆对话框

    该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处! 正文 一.创建项目 1.新建Qt Gui应用,项目名称为“login”,类名和基类保持MainWi ...

  2. HTML常用标签-<body>内基本标签(块级标签和内联标签)

    HTML常用标签-<body>内基本标签(块级标签和内联标签) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.<hn>系列标签 n的取值范围是1~6,从 ...

  3. location.href跳转测试

    测试代码 <script type="text/javascript"> function ToUrl(x){ location.href=x; } </scri ...

  4. [洛谷P4492] [HAOI2018]苹果树

    洛谷题目链接:[HAOI2018]苹果树 题目背景 HAOI2018 Round2 第一题 题目描述 小 C 在自己家的花园里种了一棵苹果树, 树上每个结点都有恰好两个分支. 经过细心的观察, 小 C ...

  5. 动态引用外部的Javascript脚本文件[转]

    你可以参考下面方法,进行动态为网页引用外部的Javascript脚本文件.代码写在Page_Init方法内. VB.NET: 下图是运行时,查看HTML的源代码: C#:

  6. 用Emacs看电影

    大多数人用emacs听歌,我却喜欢用emacs看电影.用 EMMS 和 mplayer 结合,看电影真是太方便了. 不要从源里安装EMMS,它可能给你安装别的播放器,没必要,我们有 mplayer 足 ...

  7. Linux学习4-信号

      信号 信号是Unix和Linux系统响应某些条件而产生的一个条件.接收到该信号的进程会相应的采取一些行动. 信号是由于某些错误条件而生成的,如内存冲突,浮点处理器错误或非法指令等.它们由shell ...

  8. 小玩意1-实时获取IE浏览器输入框URL地址

    主要参考http://www.cnblogs.com/scrat/archive/2012/09/12/2682626.html 主要思路如下: 通过 FindWindow() FindWindowE ...

  9. 基本控件文档-UIScrollView

    CHENYILONG                                      基本控件文档-UIScrollView Fullscreen   基本使用作用UIScrollView可 ...

  10. 莫队-小Z的袜子

    ----普通莫队 首先清楚概率怎么求假设我们要求从区间l到r中拿出一对袜子的概率sum[i]为第i种袜子在l到r中的数量 $$\frac{\sum_{i=l}^{r} {[sum[i] \times ...