码迷,mamicode.com
首页 > 其他好文 > 详细

tp5和swagger

时间:2019-07-22 12:59:27      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:this   bin   rect   eset   ack   color   http   pac   you   

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

标签:this   bin   rect   eset   ack   color   http   pac   you   

原文地址:https://www.cnblogs.com/ziyandeyanhuo/p/11224962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!