首页 PHP小记正文

laravel5.7下 swagger的安装

admin PHP小记 2019-02-26 344 0

安装swagger第一步

首先执行composer依赖
composer require "darkaonline/l5-swagger:5.5.*"

安装swagger第二步

在项目根目录中执行命令: 
php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"

执行该命令后,会在config目录下产生一个l5-swagger.php的配置文件,里面包含了swagger标题,token验证,路由等常用的基本配置

安装swagger第三步

在项目根目录中执行命令: composer require 'zircote/swagger-php:2.*'    
然后启动项目,浏览器访问测试:
    “你的网站地址” + “/api/documentation”   
可以看到swagger的界面了,但会提示缺少api-docs.json文件。

安装swagger第四步

需在项目app下创建个php文件(放在app/http的Controllers文件夹下),命名为:Swagger.php 文件内容如下:
    <?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;

    class Swagger extends Controller
    {
        /**
         * @SWG\Swagger(
         *     basePath="",
         *     host="127.0.0.1",
         *     schemes={"http"},
         *     @SWG\Info(
         *         version="1.0",
         *         title="OpenApi",
         *         @SWG\Contact(name="Pek Ratanak", url="https://www.google.com"),
         *     ),
         *     @SWG\Definition(
         *         definition="Error",
         *         required={"code", "message"},
         *         @SWG\Property(
         *             property="code",
         *             type="integer",
         *             format="int32"
         *         ),
         *         @SWG\Property(
         *             property="message",
         *             type="string"
         *         )
         *     )
         * )
         */
        public function docs()
        {
            //...接口
        }
    }

安装swagger第五步

在项目根目录中执行命令:
    php artisan l5-swagger:generate 


     如果上面不创建swagger.php,执行此命令就会抛出错误:  
     In Logger.php line 38: Required @SWG\Info() not found
完全走完后,需要去l5-swagger.php配置文件
     找到’generate_always’属性,配置可以根据需要修改下,它表示是否每次都刷新swagger, 示例如下:

    'generate_always' => env('L5_SWAGGER_GENERATE_ALWAYS', false),    

//  把false改为true,你每次修改了配置它就会马上更新, 否则你更改了配置它不会马上生效

注意

    注:版本问题 需要将配置版本修改为2.0
       Symfony\Component\Debug\Exception\FatalThrowableError  : Call to undefined function OpenApi\scan()
这样整个swagger的安装就完成了!

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论