macerd / laravel-request-docs
自动从请求规则、控制器和路由生成Laravel文档
1.22
2022-04-11 13:38 UTC
Requires
- php: ^7.4|^8.0
- illuminate/contracts: ^8.37|^9.0
- kitloong/laravel-app-logger: ^1.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- brianium/paratest: ^6.2
- friendsofphp/php-cs-fixer: ^3.5
- nunomaduro/collision: ^5.3|^6.0
- orchestra/testbench: ^6.15|^7.0
- phpunit/phpunit: ^9.3
- spatie/laravel-ray: ^1.23
- squizlabs/php_codesniffer: ^3.6
- vimeo/psalm: ^4.8
README
为Laravel提供无烦恼的自动API文档生成。
Swagger的替代品。
支持Open API 3.0.0
快速:在任何Laravel项目上安装
无烦恼:自动生成请求规则和参数的API文档
分析:内置SQL查询时间分析器,响应时间和头部输出。
支持:Postman和OpenAPI 3.0.0导出。
功能
- 自动从Laravel路由获取路由
- 自动从注入的请求获取规则
- 支持授权头部
- 支持Laravel上的SQL查询、响应时间和内存消耗
- 使用
faker.js
智能自动请求构建器 - 使用Markdown显示额外文档
- 将Laravel API、路由、规则和文档导出到Postman和OpenAPI 3.0.0
继续阅读Medium
无需编写注释即可自动为Laravel生成API文档。
要求
安装
您可以通过composer安装此包
composer require rakutentech/laravel-request-docs --dev
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag=request-docs-config
用法
仪表板
在浏览器上查看/request-docs/
生成静态HTML和Open API规范
php artisan lrd:generate
文档HTML生成在docs/
内部。
只想查看Open API
在浏览器上查看/request-docs/?openapi=true
设计模式
为了让此插件工作,您需要在控制器内部注入请求类,并遵循设计模式。对于额外文档,您还可以在控制器方法中使用Markdown。
屏幕截图
生成的API文档
尝试API
SQL查询配置文件
响应配置文件
自定义头部
额外
您可以在Markdown中编写额外文档,它将在仪表板上渲染为HTML。例如,在控制器中使用它
/** * @lrd:start * #Hello markdown * ## Documentation for /my route * @lrd:end */ public function index(MyIndexRequest $request): Resource {
自定义参数
您可以使用@QAparam注释行编写额外的参数和规则
/** * @QAparam search string */ public function index(MyIndexRequest $request): Resource {
/** * @QAparam search string nullable max:32 */ public function index(MyIndexRequest $request): Resource {
测试
./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错误,支持Laravel 9
- v1.13 支持Laravel 9
- v1.15 添加了过滤功能,在异常发生时回退到正则表达式
- v1.17 不限制为FormRequest
- v1.18 修复了prism固定高度的问题,允许文本区域调整大小
- v1.18 更新了UI并推送了单元测试
- v1.19 异常 -> Throwable用于类型错误
- v1.20 特性:支持open api 3.0.0 #10
- v1.21 添加了自定义参数功能
- v1.22 支持Boolean|File|Image
- v1.22 支持Boolean|File|Image
- v1.23 修复了lrd doc block #76的bug