futurfuturfuturfutur / duckduckduck
Laravel 包,能够通过测试自动生成 API 文档,无需在代码库中添加垃圾注释。
1.0.3
2021-07-17 11:45 UTC
Requires
- illuminate/support: ^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
This package is auto-updated.
Last update: 2024-09-17 18:42:28 UTC
README
Laravel 包,能够通过测试自动生成 API 文档,无需在代码库中添加垃圾注释。
文档支持
- OpenAPI 3.0.0
工作原理
如果你的项目有优秀的功能测试覆盖率,这意味着你已经为该项目创建了文档。你已经描述了可用的路径、请求体、参数、内容类型、响应负载和 HTTP 状态码。你不应该再用自己的方式重新描述,只是格式为使用的 API 文档格式。该包的原则非常简单:当你运行测试时,包中间件会抓取测试用例的响应和请求,并将其保存为 API 文档配置文件,你可以使用它来渲染。
安装
- 使用
composer require --dev futurfuturfuturfutur/duckduckduck
安装包 - 发布和设置包,使用
php artisan duckduckduck:init
。此命令将在 Laravel 的config
文件夹中发布 duckduckduck.php 配置文件,包含你的 API 文档的基本配置,并在应用的根目录中创建/duckduckduck
包目录,用于存储由包生成的所有项目文档配置。 - 在 PHPUnit TestCase 中添加 TestCase 特性
<?php namespace Tests; use Futurfuturfuturfutur\Duckduckduck\Traits\DuckduckduckTestCase; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { use CreatesApplication; use DuckduckduckTestCase; ... }
用法
设置
该包将处理大多数事情,但其中一些你需要自己定义
- 在
config/duckduckduck.php
中定义 API 文档的基本信息(名称、描述、文档类型、版本) - 在测试类的 PHPDoc 注释中定义路由描述和分组(所有这些都是可选的)
/** * @DuckDuckDuckRouteGroup Group name * @DuckDuckDuckRouteDescription Description */ class IndexTest extends TestCase {
- 在案例方法的 PHPDoc 注释中定义测试案例描述
/** * @DuckDuckDuckRouteDescription Description of the case */ public function testShow() {
运行构建
使用 php artisan duckduckduck:generate
运行 API 文档生成模式的测试。该包将运行你的应用的特性测试并生成位于应用根目录下包 /duckduckduck
目录中的文档文件。
使用 Docker 运行文档渲染
运行文档渲染服务器的最简单和最优雅的方式是启动包含 /duckduckduck
包目录的 docker 容器。
Swagger
docker run -p 9999:8080 -e SWAGGER_JSON=/duckduckduck/swagger.json -v /duckduckduck:/duckduckduck swaggerapi/swagger-ui
请记住,挂载 duckduckduck 文件夹时应定义绝对路径
API 文档
- 文档的基本信息
- 分组路径及其描述和方法
- 请求中的路径、查询和体参数
- 具有负载和代码的路由响应
- 运行 API 的服务器的信息
- 表单请求的参数验证规则
贡献
请参阅贡献指南以获取详细信息。
许可证
MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。