tp5 集成swagger

大家都是比较推荐的APP写API接口文档Swagger ui这个框架,现在就记录一下环境的搭建。 

Swagger ui 也是基于html+javascript实现的,而且可以实现在线测试的功能,方便开发人员和测试人员进行测试和查看接口调用的结果信息。 
Thinkphp框架下安装Swagger UI:

1. $ cd /var/www/Api 2. 安装Composer

 

$ apt-get update $ curl -sS https://getcomposer.org/installer | php $ /usr/bin/php composer.phar --version $ sudo mv composer.phar /usr/local/bin/composer $ composer -version 出现以下信息,证明安装成功

 

这里写图片描述

3. 安装swagger-php

 

$ composer require zircote/swagger-php 
$ composer global require zircote/swagger-php

 

  1. 这时在Api文件夹下会生成一个vendor的文件夹,说名安装成功
  2. 下载 Swagger UI文件: https://github.com/swagger-api/swagger-ui
  3. 下载成功之后可以放到自定义目录,注该目录可以访问到(从SwaggerUI的官网下载最新版的源码,直接拷贝dist目录到ThinkPHP应用到public目录下,并命名为swagger。
    接下来修改swagger目录下到index.html中到swagger.json路径为本地路径(默认指向http://petstore.swagger.io/v2/swagger.json)) 
  4. 修改 dist目录下的index.html页面

  5. 图片

    这里写图片描述

    修改生成的json文件路径,不要着急下面就说明怎么生成json文件

    1. 我是在Api文件夹下,新建的swagger-docs文件夹,然后运行命令

$ php /var/www/Api/vendor/zircote/swagger-php/bin/swagger /var/www/Api/vendor/zircote/swagger-php/Examples -o /var/www/Api/swagger-docs/swagger.json
(phpE:/wwwWeb/alluse/vendor/zircote/swagger-php/bin/swagger E:/ wwwWeb/alluse/vendor/zircote/swagger-php/Examples -o E:/wwwWeb/alluse/public
注意:第一个路径是你安装成功后组件的路径;第二个路径是你想要生成这个目录下所有用swagger方式注释的php文件,把所有注释生成api文档;第三个路径是你存放生成swagger.json的路径

方法2、编写控制器方法生成swagger.json:

如果我们每次修改了api,还要手动执行第三步的代码,有些繁琐,那我们就在控制器中写一个方法,每次访问swagger-ui的时候自动执行,然后跳转到前台swagger界面中。

下面是控制器里面的方法


$path = '../application'; //你想要哪个文件夹下面的注释生成对应的API文档
$swagger = \Swagger\scan($path);
//header('Content-Type: application/json');
//echo $swagger;
$swagger_json_path = $path.'/swagger-docs/swagger.json';
//$swagger_json_path = 'swagger.json';
$res = file_put_contents($swagger_path, $swagger);
if ($res == true) {
$this->redirect('http://localhost/swagger-ui/dist/index.html');
}

 

 

  1. 访问 dist文件下面的index.html就OK了

    这里写图片描述

  2.  

    QQ%E5%9B%BE%E7%89%8720171123140158.png

    关于json文件的内容怎么生成,可以参考Examples文件夹下面的文件。
  3. 第四步:thinkphp中使用swagger-php

    如果我们每次修改了api,还要手动执行第三步的代码,有些繁琐,那我们就在控制器中写一个方法,每次访问swagger-ui的时候自动执行,然后跳转到前台swagger界面中。

    注意:在thinkphp的入口文件index.php中加入require './vendor/autoload.php';

    下面是控制器里面的方法

    $path = 'E:\wamp64\www\tp'; //你想要哪个文件夹下面的注释生成对应的API文档$swagger = \Swagger\scan($path);//header('Content-Type: application/json');//echo $swagger;$swagger_json_path = $path.'/swagger-docs/swagger.json';$res = file_put_contents($swagger_path, $swagger);if ($res == true) { $this->redirect('http://localhost/swagger-ui/dist/index.html');}

    到此完成了,具体swagger-php的注释使用方法,请打开安装好的组件目录,我的目录在E:\wamp64\www\tp\vendor\zircote\swagger-php\Examples,这里的php文件都是写好注释的,自己好好看下应该就可以使用了,实在不会还有度娘呢。O(∩_∩)O~ 

转载于:https://my.oschina.net/u/3447660/blog/1796354

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值