asxer/laravel-swagger

此包已被废弃,不再维护。作者建议使用asxer/laravel-swagger包。

提供中间件,通过运行RESTful API测试生成swagger文档文件。

1.5.1 2020-10-20 16:06 UTC

README

此插件旨在在通过测试的同时收集有关您的Rest-Api的信息并生成文档。其工作原理基于在您想要收集信息的路由上安装特殊中间件,在所有测试成功完成后生成Swagger文件。此外,此插件还能够根据配置绘制Swagger模板来显示生成的文档。

安装

Composer

  1. composer require asxer/laravel-swagger

Laravel

  1. Asxer\Support\AutoDoc\AutoDocServiceProvider::class,添加到config/app.php中的 providers。
  2. 运行php artisan vendor:publish

插件

  1. 将中间件\Asxer\Support\AutoDoc\Http\Middleware\AutoDocMiddleware::class添加到Http/Kernel.php
  2. tests/TestCase.php中,使用\Asxer\Support\AutoDoc\Tests\AutoDocTestCaseTrait
  3. config/auto-doc.php中,您可以指定启用插件、您的项目的详细信息、一些默认描述和用于渲染文档的路由。
  4. .env文件中,您应该添加以下行LOCAL_DATA_COLLECTOR_PROD_PATH=/example-folder/documentation.json LOCAL_DATA_COLLECTOR_TEMP_PATH=/tmp/documentation.json

用法

为了使插件正常工作,您必须在类YourRequest的rules()方法中处理所有验证规则,该类必须通过DependencyInjection连接到控制器。在自定义请求的注解中,您可以指定该请求的摘要和描述。插件将从您的请求中提取验证规则并将其用作输入参数的描述。

示例

<?php

namespace App\Http\Requests;  

use Illuminate\Foundation\Http\FormRequest;

/**
 * @summary Updating of user
 *
 * @description
 *  This request mostly needed to specity flags <strong>free_comparison</strong> and 
 *  <strong>all_cities_available</strong> of user
 *
 * @_204 Successful MF!
 */
class UpdateUserDataRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }  
  
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'all_cities_available' => 'boolean',
            'free_comparison' => 'boolean'
        ];
    }
}
  • @summary - 请求的简短描述
  • @description - 实现说明
  • @_204 - 响应代码的自定义描述。您可以指定任何您想要的代码。

如果您不创建Request类,则摘要、实现说明和参数将为空。插件将仅收集响应代码和示例。

如果您不创建请求摘要的注解,则摘要将自动从请求名称生成。例如,请求UpdateUserDataRequest将具有摘要Update user data request

如果您不创建代码描述的注解,则将自动生成以下优先级的描述

  1. 请求注解
  2. auto-doc.defaults.code-descriptions.{$code}的默认描述
  3. Symfony\Component\HttpFoundation\Response::$statusTexts的描述

关于配置的说明

  • auto-doc.route - 生成的文档所在的路线
  • auto-doc.basePath - API根所在的路线

您还可以通过创建自定义数据收集器类来指定收集文档的方式。