rakutentech / laravel-request-docs
从请求规则、控制器和路由自动生成 Laravel 文档
Requires
- php: ^7.4|^8.0|^8.1|^8.2|^8.3
- ext-json: *
- illuminate/contracts: ^8.37|^9.0|^10.0|^11.0
- kitloong/laravel-app-logger: ^1.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.12|dev-master
- brianium/paratest: ^6.2|^7.4
- friendsofphp/php-cs-fixer: ^3.5
- larastan/larastan: ^1.0|^2.0
- nunomaduro/collision: ^5.3|^6.0|^8.0
- orchestra/testbench: ^6.15|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.3|^10.5
- slevomat/coding-standard: ^8.15
- spatie/laravel-ray: ^1.23
- squizlabs/php_codesniffer: ^3.6
- vimeo/psalm: ^4.8|^5.6
- dev-master
- v2.41
- v2.40
- v2.39
- v2.38
- v2.37
- v2.36
- v2.35
- v2.34
- v2.33
- v2.32
- v2.31
- v2.30
- v2.29
- v2.28
- v2.27
- v2.26
- v2.25
- v2.23
- v2.22
- v2.21
- v2.20
- v2.19
- 2.18
- 2.17
- 2.16
- 2.15
- 2.14
- 2.13
- 2.12
- 2.11
- 2.10
- 2.9
- 2.8
- 2.7
- 2.6
- 2.5
- 2.4
- 2.3
- 2.2
- 2.1
- 2.0
- 1.31
- 1.30
- 1.29
- 1.28
- 1.27
- 1.26
- 1.25
- 1.24
- 1.23
- 1.22
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8
- 1.7
- 1.6
- 1.5
- 1.4
- 1.3
- 1.2
- 1.1
- 1.0
- dev-create-pull-request/patch
- dev-feature/docs
- dev-feature/revert
- dev-develop
This package is auto-updated.
Last update: 2024-09-08 04:40:49 UTC
README
为 Laravel 提供无烦恼的自动 API 文档生成器。
Swagger 的替代品。
支持 Open API 3.0.0
尝试最新的 DEMO!
快速 在任何 Laravel 项目上安装
无烦恼 自动生成请求规则和参数的 API 文档
分析 内置 SQL 查询时间分析器,响应时间和头部输出。
支持 Postman 和 OpenAPI 3.0.0 导出。
功能
- 亮暗模式
- 自动从注入的请求和正则表达式获取规则
- 自动从 Laravel 路由获取路由
- 支持 Laravel 日志
- 支持 SQL 查询和查询时间
- 支持 HTTP 响应时间和内存消耗
- 支持授权头部
- 支持文件上传
- 支持Eloquents事件
- 使用 markdown 显示额外文档
- 保存历史请求
- 添加筛选器以按方法、控制器、中间件、路由排序、分组和筛选路由
- 将 Laravel API、路由、规则和文档导出到 Postman 和 OpenAPI 3.0.0
在 Medium 上阅读
无需编写注释即可自动为 Laravel 生成 API 文档。
要求
安装
您可以通过 composer 安装此软件包
composer require rakutentech/laravel-request-docs
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag=request-docs-config php artisan route:cache # Optional publish assets # php artisan vendor:publish --tag=request-docs-assets
(可选)将以下中间件添加到您的 API 中,以便捕获 SQL 日志和模型事件。
app/Http/Kernel.php
'api' => [ ... \Rakutentech\LaravelRequestDocs\LaravelRequestDocsMiddleware::class, ... and so on
使用方法
仪表板
在浏览器中的 /request-docs/
上查看
设计模式
要使此插件正常工作,您需要在控制器内部注入请求类,以遵循设计模式。对于额外的文档,您还可以在控制器方法中使用 markdown。
截图
深色和浅色模式
- 使用本地存储来保存先前请求和请求头的历史记录。
- 请求、SQL、响应和事件时间线如下
排序、分组和筛选的设置
额外文档
您可以使用 @lrd
在 rules
方法的 PHPDoc 和控制器方法中编写额外的文档。
这将在仪表板上以 HTML 格式渲染。
在控制器方法上定义的文档附加在 rules
方法上定义的文档之后。
在控制器中使用它的示例
/** * @lrd:start * # Hello markdown * Free `code` or *text* to write documentation in markdown * @lrd:end */ public function index(MyIndexRequest $request): Resource {
额外参数
您可以使用 @LRDparam
定义额外参数。
您可以在 rules
方法和控制器方法上的 PHPDoc 中使用 @LRDparam
。
您还可以使用 @LRDparam
覆盖规则。这意味着当规则在 rules
方法中定义时,您可以使用 @LRDparam
在 rules
方法的 PHPDoc 上覆盖这些规则。您还可以在控制器方法上的 PHPDoc 中使用 @LRDparam
覆盖这些规则。
因此,优先级是 控制器方法 PHPDoc
< 规则方法 PHPDoc
< 规则方法值
。
/** * @LRDparam username string|max:32 * // either space or pipe * @LRDparam nickaname string|nullable|max:32 * // override the default response codes * @LRDresponses 200|422 */ public function index(MyIndexRequest $request): Resource {
响应代码
如果未显式声明响应代码,则所有路由都按请求-docs.php 中定义的 default_responses
配置返回任何响应代码。
然而,在控制器方法上的PHPDoc中使用@LRDresponse 200|422
(空格或管道),您能够明确定义服务器可以返回哪些状态码。
配置
请查看request-docs.php
配置文件,了解如何自定义您的体验。
测试
./vendor/bin/phpunit
代码风格检查
./vendor/bin/phpcs --standard=phpcs.xml --extensions=php --ignore=tests/migrations config/ src/
修复代码风格问题
./vendor/bin/php-cs-fixer fix src/ ./vendor/bin/php-cs-fixer fix config/
星标历史
变更日志
- 初始版本
- v1.9 增加了状态码、响应头、自定义请求头等改进,并修复了用户报告的问题
- v1.10 显示PHP内存使用情况,修复gzip编码问题
- v1.12 修复了id的bug,并支持Laravel 9
- v1.13 支持Laravel 9
- v1.15 添加了过滤器,并在异常时回退到正则表达式
- v1.17 不限制为FormRequest
- v1.18 修复了prism有固定高度的问题。允许文本区域可调整大小。
- v1.18 更新了UI并推送了单元测试
- v1.19 将类型错误转换为Exception
- v1.20 支持开放API 3.0.0 #10
- v1.21 能够添加自定义参数
- v1.22 支持布尔值|文件|图片
- v1.22 支持布尔值|文件|图片
- v1.23 修复了LRD文档块#76的bug
- v1.27 在宽度和请求方法上做了一些修复
- v2.0 UI更新到React Static
@QAParam
现在为@LRDparam
- 对用户没有特殊更改,按常规升级到v2.x
- 升级用户需要重新发布配置
- v2.1 UI - 添加了搜索栏和表格的一些对齐修复
- v2.2 添加了PHP 8.1和8.2的支持 - 路由和控制器启用了Groupby
- v2.3 修复了本地存储(标签页)的bug,并在alpha测试后重构了整个UI
- v2.4 在导航栏上显示版本,curl使用ace编辑器
- v2.5 修复了Groupby的最终问题,添加了本地存储清除按钮。其他UI重构
- v2.6 文件上传
- v2.7 在Eloquent模型上显示活动
- v2.8 在Eloquent模型上显示完整活动
- v2.13 修复了bug,并支持嵌套参数
- v2.14 添加了对路径参数的支持
- v2.16 顶部导航栏已固定
- v2.19 发布_astro资源
- v2.25 添加了
laravel-request-docs:export
命令以导出 - v2.28 允许在请求类的
rules
方法上定义额外的文档。由@Ken-vdE提供 - v2.31 自定义标题,vup js和PHP到最新。自定义头。保存响应历史。
- v2.40 一些bug修复。