zoukankan      html  css  js  c++  java
  • Laravel5.6整合swagger

    Laravel5.6整合swagger

    前面已经写过一篇关于swagger的文章:《Yii+swagger-php生成api文档》,里面记录了swagger的安装以及文档的编写案例,这里再介绍下在laravel下如何整合swagger来使用。

    1、安装swagger

    1)在packagist网站查看与当前laravel版本相匹配的l5-swagger的版本号

     

    2)用compser导入l5-swagger包

    执行命令:composer require "darkaonline/l5-swagger:5.6.*"

    2、生成配置及初始化文件

    1)执行命令

    php artisan vendor:publish --provider "L5SwaggerL5SwaggerServiceProvider"

    3)生成的文件说明

    执行上述命令后,config下面会生成文件l5-swagger.php

    Resources/views下面也会生成vendor文件夹

     

    3、注册swagger

    打开config/app.php,在providers数组中添加:

    L5SwaggerL5SwaggerServiceProvider::class

     

    4、添加API相关描述信息及Demo

    在app目录或Controller目录下创建文件:

    这里在app下面创建这两个文件

    1)app/swagger.php 是对api文档和部署环境的简单描述

    2)app/apidoc.php  我们主要是在这里面写注解。swagger会自动扫描这个文件里面的注释来生成api文档

    编写注解遵循的openApi规范,参考文档

    这里有个例子

     

    5、生成swagger文档的方式

    方式一:手动

    项目下面使用命令行执行:php artisan l5-swagger:generate

    这个每次注释更新之后,都需要执行一次命令来重新生成api文档

    方式二:自动(推荐)

    在.env文件下面配置

    L5_SWAGGER_GENERATE_ALWAYS=true

    配置后,无需手动生成api文档,直接访问api文档地址即可

    6、访问api文档

    访问地址:域名/api/documentation

    host比如下图这里的api.exshare.com:本地配置的域名指向项目public这个路径

     

     

     7、调试使用

     

     

        注意,我执行请求后这里出现了问题:

        

     

    经过排查,发现问题出在resource/views/index.blade.php中

    这个requestInterceptor中的this是有问题的,它指向的是当前windows对象,而我们要的是当前requestInterceptor自身携带的request对象

    其实在github源仓库里面,仔细找找是能发现的,官方已经在最近修复了这个问题,应该是我们在composer拉取这个版本代码时,当时还没有更新,呜呜~~~~~~~~~我太南了!!

    https://github.com/DarkaOnLine/L5-Swagger/issues/304
    https://github.com/DarkaOnLine/L5-Swagger/blob/5.7.3/resources/views/index.blade.php

    然后问题处理了,我们这里刷新下swagger文档,重新填参数发起请求,就能看到正确的响应:

       

    参考链接:

    https://packagist.org/

    https://xiaoxiami.gitbook.io/swagger/swagger-php-wen-dang/openapi-gui-fan

     

  • 相关阅读:
    封装tip控件
    Javascirpt中创建对象的几种方式
    使用Servlet上传文件
    Struts2 基本配置
    使用JQuery实现手风琴布局
    winform下自绘提示框风格窗体
    环形进度条
    Oracle中获取当前时间半小时前的时间
    JSTL+MyEclipse8.5+Tomcat配置
    使用CSS和jQuery实现对话框
  • 原文地址:https://www.cnblogs.com/hld123/p/13551157.html
Copyright © 2011-2022 走看看