一、應用場景
在公司中,有很多開發,每個人維護的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 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接口模板,點擊右側的保存
可以看出,左邊就是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 3000:3000 \ 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": "200", "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