使用 Laravel-Swagger 编写接口文档(php)
Swagger 文档管理
官方网站:https://swagger.io/
快速编写你的 RESTFUL API 接口文档工具,通过注释定义接口和模型,可以和代码文件放置一起,也可以单独文件存放。
优势
- 通过代码注解定义文档,更容易保持代码文档的一致性
- 模型复用,减少文档冗余,带来更可靠的文档
- 提供客户端访问接口,可以直接调试接口,不需要第三方工具进行调用测试接口
- 支持权限认证,等功能
Laravel Swagger 扩展
扩展源代码地址:https://github.com/DarkaOnLine/L5-Swagger
1 |
composer require darkaonline/l5-swagger |
将会生成配置文件 l5-swagger.php,其中需要注意的配置项
routes.api默认值为api/documentationSwagger 文档系统访问路由routes.docsSwagger 解析注释生成文档 JSON 文件的存储路径paths.annotations有效注释的路径配置,默认base_path('app')应用路径generate_always测试环境应该开启这个配置,每次访问都会自动解析注释生成最新的文档swagger_version这个默认为 2.0 , 建议修改为 3.0
下文所有的注释内容,需要存在于 paths.annotations 路径下。
接口版本
@OA\Info 定义接口版本,标题,描述,已经作者信息。
1 |
/** |
接口请求方式与请求路径
@OA\Get,@OA\Post 定义接口请求方式
示例:根据USER_ID请求用户详情信息 /api/users/{user_id}
接口分组配置:tags,将会对接口归类
1 |
/** |
接口请求参数
通过 Swagger 可以定义三类参数,path,header,query
- path, 参数存在 endponit 中,如,/users/{user_id}
- header, 参数存在请求头部,如,token 用户校验令牌
- query, 请求参数带在请求URL上,如,/users?nickname={nickname}
1 |
/** |
POST 提交表单,通常使用 application/json 方式,如,创建用户
@OA\Post
path=/users
1 |
/** |
Schema 模型定义
上面的注释中,多次引用 @OA\Schema(ref="#/components/schemas/UserModel")
1 |
/** |
Laravel-Swagger 会自动根据您的注释进行匹配
上传文件接口示例
定义一个接口,接收上传文件,并返回结果远程文件地址
接口定义:
1 |
/** |
模型定义:
1 |
/** |
访问 api/documentation 效果如图

try it out 上传文件操作结果

需要权限认证的接口
一般对外网开放的接口,需要添加权限控制,Swagger 提供很好的支持
在 l5-swagger.php 配置文件中添加, crypt-token 定义请求头部必须添加 token 作为权限校验令牌。
1 |
'security' => [ |
接口注释中,添加对应的验证方式:
1 |
/** |

更多 Swagger3 定义字段描述,可以查看官方文档:https://swagger.io/specification/#parameterObject
使用 Laravel-Swagger 编写接口文档(php)的更多相关文章
- Spring Boot 集成 Swagger 构建接口文档
在应用开发过程中经常需要对其他应用或者客户端提供 RESTful API 接口,尤其是在版本快速迭代的开发过程中,修改接口的同时还需要同步修改对应的接口文档,这使我们总是做着重复的工作,并且如果忘记修 ...
- .net core 使用 swagger 生成接口文档
微软参考文档:https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs= ...
- Go语言使用swagger生成接口文档
swagger介绍 Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言.Swagger与一组开源软件工具一起使用,以设计.构建.记录和使用RESTful Web服 ...
- 作为Java开发工程师,如何高效优雅地编写接口文档
作为一名优秀的Java开发工程师,编写接口文档向来是一件很头疼的事情.本来就被bug纠缠的很累了,你还让我干这? 其实,你可以试试ApiPost. ApiPost的定位是Postman+Swagger ...
- asp.net core 使用 swagger 生成接口文档
参考地址:http://www.cnblogs.com/daxnet/p/6181366.html http://www.jianshu.com/p/fa5a9b76f3ed 微软参考文档:https ...
- webapi 利用webapiHelp和swagger生成接口文档
webapi 利用webapiHelp和swagger生成接口文档.均依赖xml(需允许项目生成注释xml) webapiHelp:微软技术自带,仅含有模块.方法.请求-相应参数的注释. swagge ...
- 基于swagger进行接口文档的编写
0. 前言 近期忙于和各个银行的代收接口联调,根据遇到的问题,对之前编写的接口进行了修改,需求收集和设计接口时想到了方方面面,生产环境下还是会遇到意想不到的问题,好在基本的执行逻辑已确定,因此只是对接 ...
- 用Swagger生成接口文档
Swagger简介 在系统设计的时候,各个应用之间往往是通过接口进行交互的.因此接口的定义在整个团队中就变得尤为重要.我们可以把接口的规范用接口描述语言进行描述,然后Swagger可以根据我们定义的接 ...
- Spring Boot 集成 Swagger生成接口文档
目的: Swagger是什么 Swagger的优点 Swagger的使用 Swagger是什么 官网(https://swagger.io/) Swagger 是一个规范和完整的框架,用于生成.描述. ...
随机推荐
- linux设备驱动程序--bus
linux 中bus驱动解析 总线(bus)是linux发展过程中抽象出来的一种设备模型,为了统一管理所有的设备,内核中每个设备都会被挂载在总线上,这个bus可以是对应硬件的bus(i2c bus.s ...
- centos 6.5 忘记用户名和密码
1,启动虚拟机,出现下面的倒计时界面时,按键盘上的e键 (说明:要确保光标此时已经在虚拟机内了,要不然,按了e键,也是在windows内,无效.e代表edit,启动前编辑) 2,进入如下后界面,再按e ...
- centos 启动 oracle
source .bash_profile su - oracle //切换到自己的oracle账户 lsnrctl start //启动oracle监听 sqlplus /nolog //登录 ...
- httprunner学习13-环境变量.env
前言 一般来说,在进行实际应用的开发过程中,应用会拥有不同的运行环境,通常会有以下环境: 本地开发环境 测试环境 生产环境 在不同环境中,我们可能会使用不同的数据库或邮件发送驱动等配置,这时候则需要通 ...
- Discuz通过修改文章标题更好的实现SEO的方法
找到: /source/module/forum/forum_viewthread.php 代码如下: $navtitle = get_title_page($_G['forum_thread'][' ...
- 阿里巴巴Java开发手册(格式规约篇)——查自己的漏-补自己的缺
(三) 格式规约 1. [强制]大括号的使用约定.如果是大括号内为空,则简洁地写成{}即可,不需要换行:如果是非空代码块则: 1) 左大括号前不换行.行. 2) 左大括号后换行. 3) 右大括号前换行 ...
- spark调优——算子调优
算子调优一:mapPartitions 普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作.如果是普通的map算子,假设一个partition ...
- python文件读取,替换(带格式,python lib 库)
import os, time import sys import re def read_old_part(filename, start, end): content = [] recording ...
- 开源项目(5-2) yolo打包成库
Windows系统下YOLO动态链接库的封装和调用 Windows10+VS2015+OpenCV3.4.1+CUDA8.0+cuDNN8.0 参考教程 https://blog.csdn.net/s ...
- VisualStudio中集成扩展调试SOS
SOS扩展也是可以和VisualStudio进行集成的,这样真的方便了我们调试一些性能要求比较高的程序,当程序运行一段时间后我们用VS附加到进程,然后查看一些重要的对象数据,但是此时我们看不到.NET ...