tp5和swagger
Posted ziyandeyanhuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5和swagger相关的知识,希望对你有一定的参考价值。
1、首先安装composer和git
2、在宝塔中新建个域名:www.tpsw.com
3、安装tp5.0
composer create-project topthink/think=5.0.* tp5 --prefer-dist
4、将tp5的文件放在根目录
6、打开tp下的composer.json修改:
"require": "php": ">=5.4.0", "topthink/framework":"^5.0" , //在require后增加zircote/swagger-php "require": "PHP": ">=5.4.0", "topthink/framework":"^5.0", "zircote/swagger-php" :"*" ,
之后在根目录运行
composer update
等待安装完成后或者直接在打开命令窗口之后运行
composer require zircote/swagger-php
提示安装完成后执行
composer global require zircote/swagger-php
在vendor中会生成一个zircote组件文件夹,说明插件安装成功了
7、在根目录新建一个swaggerApi文件夹存储生成的swagger.json
8、执行命令:
php /www/wwwroot/tp/vendor/zircote/swagger-php/bin/swagger /www/wwwroot/tp/vendor/zircote/swagger-php/Examples -o /www/wwwroot/tp/swaggerApi/swagger.json
第一个路径是你安装成功后组件的路径;第二个路径是你想要生成这个目录下所有swagger方式注释的PHP文件,把所有注释生成api文档,第三个路径是存放生成swagger.json的路径。
可以写个控制器,每次访问时重新生成json文件并且打开swagger
<?php namespace app\index\controller; use think\Controller; class Index extends Controller public function index() $path = ‘/www/wwwroot/tp/application‘; //你想要哪个文件夹下面的注释生成对应的API文档 $swagger = \Swagger\scan($path); // header(‘Content-Type: application/json‘); // echo $swagger; $swagger_json_path = ‘/www/wwwroot/tp/swaggerApi/swagger.json‘; $res = file_put_contents($swagger_json_path, $swagger); if ($res == true) $this->redirect(‘http://www.tpswagger.com/swagger-ui/dist/index.html‘); >
第二安装swagger
在public文件夹下安装swagger,
git clone https://github.com/swagger-api/swagger-ui.git
安装完成后打开dist目录,打开index.html文件
<script> window.onload = function() // Begin Swagger UI call region const ui = SwaggerUIBundle( url: "http://www.tpswagger.com/swaggerApi/swagger.json",//更改此url为你tp5内生成的json文件 dom_id: ‘#swagger-ui‘, deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: "StandaloneLayout" ) // End Swagger UI call region window.ui = ui </script>
以上是关于tp5和swagger的主要内容,如果未能解决你的问题,请参考以下文章