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 Asset编译怎么配置_Laravel Vite前端构建工具使用
如何正确下载安装西数主机建站助手?
教你用AI润色文章,让你的文字表达更专业
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
js实现点击每个li节点,都弹出其文本值及修改
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何快速搭建高效简练网站?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
无锡营销型网站制作公司,无锡网选车牌流程?
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何确保FTP站点访问权限与数据传输安全?
如何在万网自助建站中设置域名及备案?
如何在阿里云部署织梦网站?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
什么是javascript作用域_全局和局部作用域有什么区别?
Laravel安装步骤详细教程_Laravel环境搭建指南
iOS正则表达式验证手机号、邮箱、身份证号等
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
JavaScript中的标签模板是什么_它如何扩展字符串功能
大学网站设计制作软件有哪些,如何将网站制作成自己app?
高性价比服务器租赁——企业级配置与24小时运维服务
Laravel如何使用Sanctum进行API认证?(SPA实战)
Android滚轮选择时间控件使用详解
浅述节点的创建及常见功能的实现
如何挑选最适合建站的高性能VPS主机?
网站图片在线制作软件,怎么在图片上做链接?
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
如何在阿里云香港服务器快速搭建网站?
如何在不使用负向后查找的情况下匹配特定条件前的换行符
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
三星、SK海力士获美批准:可向中国出口芯片制造设备
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
如何在香港免费服务器上快速搭建网站?
网站制作企业,网站的banner和导航栏是指什么?
如何在新浪SAE免费搭建个人博客?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
海南网站制作公司有哪些,海口网是哪家的?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
实例解析angularjs的filter过滤器
上一篇:iOS发送验证码倒计时应用
下一篇: 海南网站制作公司有哪些,海口网是哪家的?
上一篇:iOS发送验证码倒计时应用
下一篇: 海南网站制作公司有哪些,海口网是哪家的?


响应式布局,手机也能看