刚接触Laravel不久 因为需求想搭建个集成Swagger的开发环境 写下操作过程吧
先放个包的网址 https://packagist.org
之前都是直接在里面搜索
swagger
然后又个laterll/swagger
使用的人下载次数最多久下载了这个 出了些问题 [可能自己某些步骤错了吧 已经忘记了]。 后来发现了一个包jlapp/swaggervel
很好用哦 就用这个吧
创建一个Laravel项目
进入自己的本地环境目录
对了有时候在linux测试环境下搭建项目的话 要记得查看下 storage
目录的读写权限
复制项目下的.env.example
文件 重命名为.env
一般创建的时候都会帮你复制过了
上面swaggertest是我的项目名 这个随意 另外Laravel的版本用的是 5.1 的 不知道为什么 每次用5.2的都非常慢,慢到爆炸 用5.1就好很多 难道错觉
进入项目目录 编辑文件composer.json
在最下面加上下面这段代码 增加镜像 以后下载安装什么的可以跑的快点 这一步可以无视不操作 没啥影响
|
|
集成Swagger
安装包
运行
|
|
上面这个swaggervel包有3个版本的 分别是dev-master
2.0.x-dev
(这个是给laravel5用的) 1.0.x-dev
(这个是给laravel4用的)
会自动帮你安装一些依赖 如果安装成功了在会在 项目根目录下的 vendor
下多一个jlapp/swaggervel
的文件夹 这里就是swagger的东东了
编辑配置
编辑 config/app.php
文件 找到 providers
数组在其中添加 如下代码Jlapp\Swaggervel\SwaggervelServiceProvider::class,
网上也有些说要在app/config/app.php文件中添加 但我的项目app文件夹下并没有config文件夹 so就没按照app/config/app.php增加目录创建来编辑
执行php artisan vendor:publish
命令
这句话就是把刚安装的swaggervel-ui一些东西帮你弄到根目录public目录下
成功的话目录是这样的
运行下php artisan route:list
刷新下路由
其实就是把他默认的api/docs
这个路由帮你加进来了
到这里基本已经完成 但是这个时候你去访问你的项目 他可能会报错缺少swg的注释info信息啥的 也并没有生成他运行需要的 json文件
http://localhost/api/docs [这个是我的项目地址 具体的自己配置吧]
默认情况下他会在 storage/docs
这个文件夹下生成所需要的json文件的 因为我们还没有写controller注释 他没有生成json文件 但是把目录已经创建好了
需要注意下vendor/jlapp/swaggervel/src/config/swaggervel.php
这个文件 其中有一个 参数 generateAlways
这个变量 他是控制是否每次都刷新生成json 文件, 推荐在.env
中配置一个变量参数设置到这里 这样就不用每次来改这里了 毕竟这个路径找起来挺麻烦的
好了 整个Controller
国际惯例 hello world
|
|
访问自己配置的域名 看到下面就成功了