1、swagger安装
去这里下载https://github.com/swagger-api/swagger-ui
下载完成之后,将文件夹放到你的网站根目录上面,例如我是放在我wamp下面的www目录。
接着找到dist目录, 打开index.html把其中的那一串url改成自己的 比如http://localhost/tp/public/swagger.json
注意这个url就是后面swagger.json 的路径;
如果你想支持中文在index.html中加上
<script src=‘lang/translator.js‘ type=‘text/javascript‘> </script><script src=‘lang/zh-cn.js‘ type=‘text/javascript‘></script>
然后打开URL输入http://localhost/swagger-ui/dist/index.html
就可以看到前端界面了, 应该是没内容的, 因为还没生成swagger.json, 生成好之后你设置的URL就起了作用。swagger.json我是放在tp框架下的swagger-docs目录中的,具体路径看你自己,具体下面会提到,不要慌O(∩_∩)O~。
进入你的项目目录执行如下命令:
composer require zircote/swagger-php
提示安装完成后会在你tp项目的vendor中生成一个zircote的组件文件夹,说明已经安装插件成功了。
方法1、直接在命令行中输入:
php D:\Program\www\tp\vendor\zircote\swagger-php\bin\swagger D:\Program\www\tp\application\app\controller\ -o D:\Program\www\tp\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‘;
$res = file_put_contents($swagger_path, $swagger);
if ($res == true) {
$this->redirect(‘http://localhost/swagger-ui/dist/index.html‘);
}
控制器的注释写法
/** * @SWG\Resource( * basePath="http://skyapi.dev", * resourcePath="/vps", * @SWG\Api( * path="/vps", * @SWG\Operation( * method="GET", * type="array", * summary="Fetch vps lists", * nickname="vps/index", * @SWG\Parameter( * name="expand", * description="Models to expand", * paramType="query", * type="string", * defaultValue="vps,os_template" * ) * ) * ) * ) */ class VpsController extends Controller { // ... }
这只是个简单的实例具体的注释写法请自己百度
2、swagger注释使用
参考这个(写的比较全面):https://learnku.com/laravel/t/7430/how-to-write-api-documents-based-on-swagger-php#747b67
目前还没看出头绪,明天接着看吧
原文:https://www.cnblogs.com/jcydd/p/11455989.html