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 】
相关推荐:
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
轻松掌握MySQL函数中的last_insert_id()
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
公司网站制作价格怎么算,公司办个官网需要多少钱?
详解vue.js组件化开发实践
Laravel如何与Pusher实现实时通信?(WebSocket示例)
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何选择可靠的免备案建站服务器?
,网页ppt怎么弄成自己的ppt?
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何快速搭建支持数据库操作的智能建站平台?
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Laravel中的withCount方法怎么高效统计关联模型数量
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Laravel如何使用查询构建器?(Query Builder高级用法)
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
如何用JavaScript实现文本编辑器_光标和选区怎么处理
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何用AI帮你把自己的生活经历写成一个有趣的故事?
如何快速生成高效建站系统源代码?
如何用wdcp快速搭建高效网站?
JS去除重复并统计数量的实现方法
使用C语言编写圣诞表白程序
如何基于PHP生成高效IDC网络公司建站源码?
微信小程序 闭包写法详细介绍
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何在香港免费服务器上快速搭建网站?
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
如何快速建站并高效导出源代码?
利用 Google AI 进行 YouTube 视频 SEO 描述优化
如何做网站制作流程,*游戏网站怎么搭建?
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
Swift中switch语句区间和元组模式匹配
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
什么是javascript作用域_全局和局部作用域有什么区别?
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
青岛网站建设如何选择本地服务器?
香港服务器租用每月最低只需15元?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何在云主机上快速搭建多站点网站?
重庆市网站制作公司,重庆招聘网站哪个好?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
上一篇:iOS发送验证码倒计时应用
下一篇: 海南网站制作公司有哪些,海口网是哪家的?
上一篇:iOS发送验证码倒计时应用
下一篇: 海南网站制作公司有哪些,海口网是哪家的?


响应式布局,手机也能看