Laravel如何生成API文档?(Swagger/OpenAPI教程)
发布时间 - 2025-12-22 00:00:00 点击率:次推荐使用 knuckleswtf/scribe 生成 Laravel API 文档,它自动扫描路由、解析验证规则与响应结构,支持 HTML、OpenAPI 3.0、Postman 导出;需规范路由定义、使用 FormRequest 和 JSON 响应,并通过 PHPDoc 注释定制文档内容。
用 Laravel 生成 API 文档,最主流、维护好、集成顺的方式是通过 Swagger / OpenAPI 标准,配合 darkaonline/laravel-swagger 或更现代的 knuckleswtf/scribe(推荐)。下面讲清核心思路和实操步骤,不绕弯。
选对工具:Scribe 比传统 Swagger 包更省心
旧方案(如 laravel-swagger)依赖手动写注释 + 静态 JSON 生成,更新易断、不支持 Laravel 9+ 新特性;knuckleswtf/scribe 是当前 Laravel 社区首选——它能自动扫描路由、提取验证规则、解析响应结构,还能导出 HTML、OpenAPI 3.0 JSON/YAML、甚至 Postman 集合。
- 安装:
composer require --dev knuckleswtf/scribe - 发布配置:
php artisan scribe:install - 生成文档:
php artisan scribe:generate
让接口自动被识别:规范写法是关键
Scribe 不是“魔法”,它靠分析控制器方法、请求类、返回响应来推导文档。你需要保持基本约定:
- 路由定义在
routes/api.php,用标准资源/命名路由,避免闭包路由 - 控制器方法要有明确的 HTTP 方法注释(
@GET,@POST),或直接用 Laravel 8+ 的 Route Model Binding + 类型提示 - 请求校验统一走
FormRequest类,Scribe 会自动读取rules()和messages() - 响应尽量用
response()->json()或 Resource 类,配合@response注释可补全示例
定制文档内容:加注释比改代码更高效
默认生成可能缺描述、参数说明或示例响应。在控制器方法上方加 PHPDoc 注释即可精准控制:
-
@group Users—— 归类到「Users」分组 -
@bodyParam email string required Email address—— 定义请求体字段 -
@response {"id":1,"name":"Tom"}—— 写死一个响应示例 -
@responseField id integer ID of the user—— 说明响应字段含义
所有可用注释见 Scribe 官方注释参考,无需背,按需查。
部署与访问:生成静态 HTML 最实用
php artisan scribe:generate 默认输出到 public/docs,生成纯 HTML 页面,开箱即用:
- 本地查看:
http://your-app.test/docs - CI/CD 中加入该命令,每次发布自动更新文档
- 支持搜索、深色模式、
响应式布局,手机也能看 - 同时产出
public/docs/openapi.yaml,可导入 Swagger UI、Redoc 或第三方平台(如 Stoplight)
基本上就这些。不用搭服务、不碰 YAML 手写、不配 Nginx 重写——Laravel 原生风格,文档跟代码一起迭代,不复杂但容易忽略。
# php
# laravel
# html
# js
# json
# composer
# nginx
# app
# 工具
# ai
# 路由
# 响应式布局
# postman
# String
# Integer
# Resource
# require
# 接口
# public
# 闭包
# http
# ui
# 文档
# 还能
# 要有
# 推荐使用
# 重写
# 不支持
# 能看
# 第三方
# 它能
# 一走
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
Laravel Fortify是什么,和Jetstream有什么关系
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
Laravel怎么实现模型属性的自动加密
如何选择PHP开源工具快速搭建网站?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
三星、SK海力士获美批准:可向中国出口芯片制造设备
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
米侠浏览器网页背景异常怎么办 米侠显示修复
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
Laravel如何实现本地化和多语言支持?(i18n教程)
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
教你用AI将一段旋律扩展成一首完整的曲子
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
专业商城网站制作公司有哪些,pi商城官网是哪个?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Laravel如何为API编写文档_Laravel API文档生成与维护方法
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
香港网站服务器数量如何影响SEO优化效果?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
如何快速启动建站代理加盟业务?
如何在IIS7上新建站点并设置安全权限?
潮流网站制作头像软件下载,适合母子的网名有哪些?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
如何获取上海专业网站定制建站电话?
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
如何确保FTP站点访问权限与数据传输安全?
如何在IIS中配置站点IP、端口及主机头?
如何将凡科建站内容保存为本地文件?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
韩国服务器如何优化跨境访问实现高效连接?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
大连 网站制作,大连天途有线官网?
Laravel观察者模式如何使用_Laravel Model Observer配置
如何在景安云服务器上绑定域名并配置虚拟主机?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
上一篇:iOS发送验证码倒计时应用
下一篇: 海南网站制作公司有哪些,海口网是哪家的?
上一篇:iOS发送验证码倒计时应用
下一篇: 海南网站制作公司有哪些,海口网是哪家的?


响应式布局,手机也能看