大家都是比较推荐的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
- 这时在Api文件夹下会生成一个vendor的文件夹,说名安装成功
- 下载 Swagger UI文件: https://github.com/swagger-api/swagger-ui
- 下载成功之后可以放到自定义目录,注该目录可以访问到(从SwaggerUI的官网下载最新版的源码,直接拷贝dist目录到ThinkPHP应用到public目录下,并命名为swagger。
接下来修改swagger目录下到index.html中到swagger.json路径为本地路径(默认指向http://petstore.swagger.io/v2/swagger.json)) -
修改 dist目录下的index.html页面
-
修改生成的json文件路径,不要着急下面就说明怎么生成json文件
- 我是在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');
}
-
访问 dist文件下面的index.html就OK了
-
-
第四步: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~