先来说说Swagger。Swagger的目的是为了方便优雅的呈现接口API的各种定义,并生成API文档,包括参数,路径等,有时候后台更改API的参数或者其他设置,前端可以直接看SwaggerUI,方便项目管理和团队协作。官网:http://swagger.io/参数文档:https://github.com/swagger-ap...这个东西怎么用什么?说白了就是安装Swagger套件,然后在API代码中写注释,使用Swagger后台程序运行API提取注释,生成json文件,然后传给Swagger前端美化和组织JSON数据。使用Swagger需要安装2个Things,前面部分,用于展示;后端,用于生成JSON1,安装前面部分swagger-ui下载1gitclonehttps://github.com/swagger-ap...下载后,找到dist目录,打开index.html,把里面的改掉你自己的url字符串,例如http://localhost/yii2/swagger...$(function(){varurl=window.location.search.match(/url=([^&]+)/);if(url&&url.length>1){url=decodeURIComponent(url[1]);}else{url="http://localhost/yii2/swagger-docs/swagger.json";}ok调整界面中文,把js文件里的注释放出来就行123然后打开网址就可以看到前端界面了。应该没有内容,因为swagger.json还没有生成。生成后,您设置的URL将起作用。直接访问前端http://localhost/yii2/swagger...2,安装后端1gitclonehttps://github.com/zircote/sw...因为我用的是yii2,所以用composer安装"require":{"zircote/swagger-php":"*"}然后composerupdate,或者直接命令行,看https://github.com/zircote/sw...DCdeMacBook-Pro:yii2DC$phpcomposer.pharrequirezircote/swagger-php我把swagger-php放在根目录下,然后使用官方提供的Examples生成测试jsoncdswagger-phpmkdirdocphpswagger.pharExamples-odoc"-o"前面代表APIsource目录,你要生成API文档的目录,你的项目代码目录。“-o”后面是生成的路径。我没有输入swagger-php,直接敲命令行。可以在任意路径下执行生成的json操作php/Users/DC/www/yii2/vendor/zircote/swagger-php/bin/swagger/Users/DC/www/yii2/vendor/zircote/swagger-php/Examples-o/Users/DC/www/yii2/swagger-docs然后看http://localhost/yii2/swagger...生成API文档后,准备工作就完成了,接下来就是写代码注释了,如何写评论?参考官方文档http://zircote.com/swagger-ph..例如Model的/**@SWGModel(id="vps",required="['type','hostname']",@SWGProperty(名称=“主机名”,类型=“字符串”),@SWGProperty(name="label",type="string"),@SWGProperty(name="type",type="string",enum="['vps','dedicated']"))*/classHostVpsextendsHostimplementsResourceInterface{//...}比如Controller的/**@SWGResource(basePath="http://skyapi.dev",resourcePath="/vps",@SWGApi(path="/vps",@SWGOperation(method="GET",type="array",summary="Fetchvpslists",nickname="vps/index",@SWGParameter(name="expand",description="Modelstoexpand",paramType="query",type="string",defaultValue="vps,os_template"))))*/classVpsControllerextendsController{//...}还看到了将Swagger集成到Laravel中的集成。Github地址是这个https://github.com/slampenny/...,但是这个后面不能gitclone,配置太麻烦,使用composercomposerrequire"jlapp/swaggervel:dev-master"下一步JlappSwaggervelSwaggervelServiceProvidercopy这句话到app/config/app.php的providers数组在最上面,然后phpartisanvendor:publish这一步将包括swaggerui在内的相关文件复制到laravel框架下公用。试试/api-docs,会出现界面,就成功了!我没有使用命令查看laravel的路由phpartisanroute:列表的前两个是刚刚添加的路由。是不是刷新页面发现空白?生产json需要写@SWG注释,然后在laravel的app目录下写任意文件。一般我们只需要写model和controller就可以了。此插件将扫描此目录以生成json文件。=================================================================每次修改API代码注释都要手动生成json文件?太麻烦了。我写了一个控制器。每次访问swagger-ui的这个controller,都会生成json,然后跳转到ui页面。$b2broot=Yii::getAlias('@b2broot');$swagger=\Swagger\scan($b2broot.'/myapi');$json_file=$b2broot.'/swagger-docs/swagger.json';$is_write=file_put_contents($json_file,$swagger);if($is_write==true){$this->redirect('http://localhost/yii2/swagger...');}参考来自https://www.cnblogs.com/derrc...
