百家饭OpenAPI工具更新到了v0.6.0版本,带来了全新的API工作台和配套的客户端工具,本周我们将分篇介绍v0.6.0版本的各项更新功能,
昨天我们讲完了API的在线测试,前端同学们完成了测试,就可以写代码了,对不对?不用着急,我们还继承了JS代码自动生成功能,希望把代码编写也省了。
API代码自动生成
API代码生成是百家饭新版API工作台的右侧第三个功能,主要的功能点就是按语言生成API的调用代码。
目前,API代码生成功能支持Javascript的调用代码生成,支持CommonJS和ES6两种语法模式,需要说明一下的是,网上生成的版本是ES6版本,如果有更多配置要求可以下载客户端进行代码生成,在客户端里可以自定义更多的功能选项。
进入API代码生成功能面板之后,面板为空内容,选择生成语言之后,就可以生成对应的代码了。
![](https://i-blog.csdnimg.cn/blog_migrate/b088d133539f8e02ee290f9adf092928.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a20b2c7d426e84d6da72b4a642934ff2.png)
JS代码结构说明
js生成的代码主要由一组api_xxx.js文件,config.js, functions.js 和index.js组成。
api_xxx.js文件
- 每个api一个文件,包含了该api的接口定义
每个api调用都包含接口说明、入参验证和实际调用三个部分,包含了api说明中包含的接口说明信息,入参具体要求和具体的调用模式
config.js
config.js包含了具体的服务器配置等信息,接口定义中的端口地址会以注释的形式提供(通常的JS调用还是本域名调用的居多,因此,只保留注释信息)
functions.js
functions.js包含了支持api调用的功能性文件,比如obj转form等
index.js
index.js是包含所有文件引用的主文件。
整体生成的文件夹可以直接通过压缩包的形式下载到本地,解压即可使用。
使用客户端生成代码
上面介绍网站功能的时候,我们说到,网站只提供默认参数的代码生成,丰富的自定义功能需要使用客户端。客户端就是从百家饭下载的百家饭OpenAPI工具,要求0.6.0版本以上。
下载完成后,我们使用cmd,在你的工程文件夹下使用openapi命令就可以生成代码,具体的参数如下:
Flags:
-c, --code string 当来源为百家饭API ID时,如果非创建人提取,当API不是公开API时,需要通过该参数指定提取码
-D, --definitions stringArray 提供关于生成的附加参数,使用=分隔
-d, --dest string 生成文件的目的路径
-l, --language string 希望生成语言的名称
-s, --source string 生成模板的源路径(非必须,仅用于自定义模板)
-y, --yaml string API定义来源,可以是yaml文件路径/数字(rongapi网站source id/url)
例如我们要为网站id为42的文档生成js代码,生成的文件放到工程目录的src里面,就输入
openapi code -y 42 -l js -d ./src
可选参数
commonjs:设置时,生成commonjs风格代码,否则生成es6风格
可选参数使用-D设置,例如
openapi code -y 42 -l js -d ./src -Dcommonjs=true
详细配置
首次运行之后,入参会在当前目录生成baijiafan.yaml文件,通过修改该文件,还可以对每个接口进行微调
definitions:
#是否采用commonjs模式
- commonjs=false
#目标输出路径
destination: .\docs\.vuepress\theme\layouts
#目标生成语言
language: javascript
#扩展模式最大参数数量,当入参小于等于该数量时,会展开入参
max_arg_num_of_expand_mode: 3
paths:
/admin/logined:
get:
#调整该调用方式的具体参数模式
input_mode: ""
/api/create.{Type}:
post:
input_mode: ""
requestBody:
#对入参的顺序不满意时,可以自行调节
order:
- Source
- Call
- Open
/service/user/login:
post:
input_mode: object
/service/user/logined:
get:
input_mode: ""
/service/user/supportregister:
get:
input_mode: ""
/system/wx:
get:
input_mode: ""
server_no: 0
server_variables: null
source: ..\openapi-client-template\javascript
yaml: "43"
目前,生成模板开源在gitee
如果使用过程中有任意问题或者需要其他语言的模板,都可以在仓库中提交您的需求。百家饭网站的新版开发都把API部分代码改成了自动生成模式,我们也在逐步测试过程中,希望大家多多来提意见。
谢谢。