美文网首页
Laravel5.4 集成Swagger

Laravel5.4 集成Swagger

作者: 你与时光终会散 | 来源:发表于2018-12-07 10:27 被阅读0次
    1.composer安装

    任选下面一个版本

    $ php composer require "darkaonline/l5-swagger:~3.0"
    $ php composer require "darkaonline/l5-swagger:5.4.*"
    

    composer 过程遇到一个问题,说内存不够

    PHP Fatal error:  Allowed memory size of 1610612736 bytes 
    exhausted (tried to allocate 4096 bytes) in phar:/usr/local/bin/composer
    /src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
    

    先查看一下php给的内存大小

    $ php -r "echo ini_get('memory_limit').PHP_EOL;" 
    128M
    

    解决方案:

    • 修改php.ini 中的memory_limit,记得重启服务
    memory_limit = 1G
    
    • 执行composer之前加COMPOSER_MEMORY_LIMIT=-1
    $ COMPOSER_MEMORY_LIMIT=-1 composer require "darkaonline/l5-swagger:~3.0"
    
    2.注册Swagger

    在config/app.php的providers中添加\L5Swagger\L5SwaggerServiceProvider::class,
    生成config/l5-swagger.php Swagger配置
    里面包含了swagger标题,token验证,路由等。

    3.创建swagger-UI
    此目录下/resources/views/vendor/l5-swagger
    
    4.刷新目录

    或者config/l5-swagger.php 中generate_always 设置成true
    这样就自动刷新了

    $ php artisan l5-swagger:generate
    
    5.访问目录

    你的网站/api/documentation,但会提示缺少api-docs.json文件。
    路由也可以修改config/l5-swagger.php 中routes的api参数来进行修改

    6.添加测试API
    <?php
    
    namespace App\Http\Controllers;
    
    use Swagger\Annotations\Info;
    
    /**
     * @Info(
     *     title="My title",
     *     version="v1.0.0"
     * )
     */
    class SwaggerController extends Controller
    {
        /**
         * 假设是项目中的一个API
         *
         * @SWG\Get(path="/swagger/my-data",
         *   tags={"project"},
         *   summary="拿一些神秘的数据",
         *   description="请求该接口需要先登录。",
         *   operationId="getMyData",
         *   produces={"application/json"},
         *   @SWG\Parameter(
         *     in="formData",
         *     name="reason",
         *     type="string",
         *     description="拿数据的理由",
         *     required=true,
         *   ),
         *   @SWG\Response(response="default", description="操作成功")
         * )
         */
        public function getMyData()
        {
        }
    }
    

    相关文章

      网友评论

          本文标题:Laravel5.4 集成Swagger

          本文链接:https://www.haomeiwen.com/subject/xbwzcqtx.html