swagger-php 快速上手指南
小结
swagger 学习用时2天,天宫一号预计在2018年03月31日到2018年04月01日坠落地球,碎片坠落地点未知。
天宫一号的坠落,可以说我朝近年的航天成果全灭。
报道断章取义…… 陨落只是时间问题。小额外汇貌似限制了,实际未测试。
使用DarkaOnLine/L5-Swagger
可以在代码中以注释形势直接编写API
文档非常方便。
注释中的语法要使用Swagger-php
样式,SWAGGER VERSION 3.0
DarkaOnLine/L5-Swagger安装
项目使用的是laravel 5.5
对应 darkaonline/l5-swagger:5.5.*
1 | composer require "darkaonline/l5-swagger:5.5.*" |
复制设置与视图文件
1 | php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider" |
SWAGGER VERSION 3.0
支持
1 | composer require "zircote/swagger-php:3.x-dev" |
设置.env
文件
L5_SWAGGER_GENERATE_ALWAYS=true
为每次打开页面是都进行重新渲染,设计阶段非常好用。
1 | SWAGGER_VERSION=3.0 |
基础文件设置
swagger-v3.php
用于设置一些基本API信息,在页面最上方显示。
1 | /** |
@OAS 为使用前缀,用于读取swagger
的设置
名头 | 解释 | 是否必要 | 其他说明 |
---|---|---|---|
OpenApi | swagger 初始化 | 必要 | 唯一并位于全部设置最顶端 |
Info | Api说明 | 必要 | 设置中的title 与version 为必要项 |
Server | Api 前置路径 | 非必要 | 多连接时,可以并行设置 |
ExternalDocumentation | 扩展文档 | 非必要 | 只能设置description 与url |
paths | 连接地址 | 必要 | 可以在控制器位置设置 |
tags | 主标签 | 必要 | 与laravel 一起使用时,独立设置方便管理。可以设置name 、description 、ExternalDocumentation |
tags.php
用于设置用户标签
1 | /** |
path 部分
直接使用注释形势写入控制器
1 | /** |
Model 数据参数
可以直接设置在class之上,使用ref="#/components/schemas/ClassName"
可以直接引用。
swagger
默认载入位置#/components/schemas/
。
1 | /** |
bitbeans/yubikey 的坑
控制器中不能正常获取Exception
。所以不能使用下方代码
1 | use YubiKey; |
改写到App\Exceptions\Handler
的render
方法判断,使用Exception
判断的packages
不多。
1 | switch($exception->getMessage()) { |