Apitest
- 通过在API controller里配置常量,生成API文档
- 并附带一个测试界面,辅助API开发。
- 适用与API开发人员,客户端/前端开发人员交流验证文档。
- 目前无出参,需要提交后,得到。无法完全替代API文档
Version
0.2.0
Installation
添加如下代码到 Gemfile:
gem 'apitest'
执行:
$ bundle install
安装lsof
$ yum install lsof -y #CentOS
$ sudo apt-get install lsof -y #Ubuntu
$ brew install lsof #MacOS
Usage
在routes.rb 配置apitest 目录,比如:
Rails.application.routes.draw do
apitest_for '/apitest'
end
浏览器中访问apitest 的url
默认api目录为controllers/api,目录可指定
Rails.application.routes.draw do
apitest_for '/apitest' do
Apitest::api_dir 'api'
end
end
默认使用blue-theme,可指定theme ,theme使用 AdminLTE,直接指定AdminLTE的theme即可:
Rails.application.routes.draw do
apitest_for '/apitest' do
Apitest::theme 'purple-light'
end
end
theme列表如下
black
black-light
blue
blue-light
green
green-light
purple
purple-light
red
red-light
yellow
yellow-light
API层级为4级 Version -> 分类 -> API组 -> API 其中Version 由第一级目录决定 分类在API中定义,定义方法如下
class Api::V1::BindingTrayController < Api::V1::ApplicationController
APIDOC = {
type: '业务API' ,
group_name: '绑定托盘' ,
sort: 2 ,
apis: {
scan_sn: { #第一条API
api_name: '扫描sn' ,
path: '/api/v1/binding_tray/scan_sn' ,
method: 'get' ,
params:{
barcode: {
text: 'sn条码' ,
required: true
} ,
detail_id: {
text: '托盘列表id' ,
}
}
} ,
... #第二条API
}
}
def scan_sn
... #your code
end
默认分类为
Apitest::default_types [ '业务API' , '工具API' , '辅助API' ]
默认分类可配置,例如:
Rails.application.routes.draw do
apitest_for '/apitest' do
Apitest::default_types [ '银行业务API' , '企业业务API' ]
end
end
如果所有API有公共必填项,例如token,version,可如下配置
Rails.application.routes.draw do
apitest_for '/apitest' do
Apitest::public_required [ 'token' , 'version' ]
end
end
可以在指定APITEST中关闭公共必填项,比如登录API,可在具体方法的APIDOC中使用false设定
token:false
完整配置方法如下
class Api::V1::LoginController < ApplicationController
APIDOC = {
type: '业务API' ,
group_name: '用户登录' ,
sort: 1 ,
apis: {
create: {
api_name: '登录' ,
path: '/api/v1/login' ,
method: 'post' ,
token: false , # 这里可关闭该API的token选项
params: {
mobile: {
required: true ,
} ,
password: {
required: true
}
}
}
}
}
def create
...
end
TODO
- 可自定义api目录
- 可自定义theme
- 可配置分类
- 可设定公共必填项,比如token、客户端类型、客户端版本号
- 公共必填项可在指定API中关闭
- 支持header token和params token
- ERROR类工具
- 出参example
- Apitest Example 网站
- 使用前端route
- 生成前端mock数据
- 保存API分类收起展开状态
- ERROR log 可选输出
- 一个token默认机制
- 客户端版本号默认升级实例
- 操作录屏gif
- 权限控制
- 测试数据准备,测试用例
- 测试中心