swagger在thinkphp3.2中的应用

在网上找这个swagger应用的时候,全部几乎都是一个样,就是不行,都是说这样那样的,但是用在你身上就是不行,就是不行

首先不管那么多,直接拿来用,后面再慢慢研究吧

swagger有个ui,你下载吧,里面有个dist文件(不想下载email我,我发给你),直接拷贝放到项目根目录下,别想着放到什么什么好看的文件整理,别想,就放在根目录好了。

然后下载swagger-php,有些人就是分不清,ui还要什么php,什么鬼,好吧,多说一句,swagger UI是界面的展示,而swagger-php是生成接口文档的驱动,这么理解没问题吧,或者简单点,ui就是人家写好的html,swagger-php就是你的php语言。

好了不多说了,我的swagger-php放在根目录的一个vender目录下的,注意这句话,不然又的说没有用了(要文件找我)

文件都弄好了吧,在入口文件index.php加上一句话,就是引入swagger-php库文件,在引入ThinkPHP入口文件之前就可以了

//引入swagger-php导入文件
require './vendor/swagger-php/vendor1/autoload.php';

还没好哦,不是有个dist文件么,里面有个index.html,打开它(编辑器),
找到他

url = decodeURIComponent(url[1]);

在她else的分支上改成这个路径地址别说不会,就是项目直接指到dist的swagger.json就可以了,像这样

url = "http://127.0.0.1/xiangmuming/dist/swagger.json";

基本的就好了,然后到时候你访问http://127.0.0.1/xiangmuming/dist/idnex.html 就是swagger UI接口界面
但是如何生成接口呢,其实就是生成swagger.json,最老土的,也不老土,你觉得方便就好,你可以直接在swagger.json中直接写json文件都可以,如果不愿意的话就继续跟着走,如果你想手动写,就可以不用继续往下看了,已经可以了,okay,完美啦

不想写json的继续,但是也好烦的,不过看的会舒服一点或者说好管理一点

一般人写代码都会判断session存不存在啊,不存在就跳到登录界面啊 什么的 ,
所以你直接写到其他不跟session挂钩的地方吧,我是卸载LoginController下的,加如下代码:

public function createApi(){
        //定义根目录
        $path = __DIR__; //你想要哪个文件夹下面的注释生成对应的API文档
        //echo $path;
        $swagger = \Swagger\scan($path);
        header('Content-Type: application/json');
        //echo $swagger;
        $swagger = (string) $swagger;
        $swagger_json_path = "dist/swagger.json";
        $res = file_put_contents($swagger_json_path,$swagger);
        if ($res == true) {
           //$this->redirect('http://'.$_SERVER['HTTP_HOST'].'/dist/index');
        }
    }

然后访问http://127.0.0.1/xiangmuming/Login/createApi
你的不行,我重写了index.php隐藏的,不行自己好好看看,里面代码自己一个个dump出来自己分析

然后提供一个接口怎么编写示例

/**
      * @SWG\Post(path="/Login/getPhoneVerifyCode",
     *   tags={"1、【未登录】登录注册模块"},
     *   summary=" 获取手机验证码",
     *   description="获取验证码成功后返回data.wtime等待时间
     *                  状态码为200=》
     *                              data.wtime:等待时间
     *                  手机接收不到,不需要300状态码",
     *              
     *   operationId="getPhoneVerifyCode",
     *   produces={"application/json"},
     *   @SWG\Parameter(name="uphone",type="string",require=true,in="formData",description="手机号码"),
     * )
     */

好了,自己研究去,文件的什么直接可以找我,但是里面其他的自己研究,搞定收工!

你可能感兴趣的:(swagger在thinkphp3.2中的应用)