开发步骤
1、建立数据表entity
2、执行数据库迁移
php artisan doctrine:migrations:migrate
生成数据库迁移文件(差异)
php artisan doctrine:migrations:diff
diff完成后,database/migrations 下回生成一个Version***.php的迁移文件
修改迁移文件名称和最新的一个格式保持一致,序号+1,然后执行migrate
================================
php artisan doctrine:migrations:migrate
3、建立router
相关目录
bootstrap/route.php
routes/
首先在routers/frontapi里新建一个wsugc.php文件,里面写好路由定义
然后bootstrap/route.php里
case 'h5app' :
分支最后
require这个新的wsugc.php文件
4、增加api(后台api),frontapi(小程序api),adminapi(导购api)
5、bash api 生成文档,根据文档在线调试
bash api
5、建立service
6、建立观察者监听模式
常见问题
1、bash api后文档里没有新的api。
需要修改根目录下的名称为api的文件,把新的接口路径加进去。
2、修改了某个api里的参数定义,bash api后api-doc文档页面对应的接口内容不更新
Swagger生成的文档有缓存,如果多次刷新还不生效,修改此api对应的Swagger/Info.php里version版本号(比如1.0改成2.0),文档首页左侧分类里,会增加一个新的以此版本号命名的api分类
执行生成文档名单后,生成如下图
3、frontapi没有小程序端传过来的Authorization,怎么调试?
首先注释掉routers文件里的身份验证
'middleware' => ['dingoguard:h5app', 'api.auth'], 'providers' => 'jwt'
然后在frontapi接口文件代码里,需要用到user_id的地方,判断一下是否有auth,没有用请求参数里的user_id(swagger注释里,当然也就要定义一个user_id参数,这样api-doc里才有user_id可以传,方便调试)
$authInfo = $request->get('auth');
修改为
$authInfo = $request->get('auth');
$allParams = $request->all('imei_sn','user_id');
$user_id= $authInfo['user_id']??$allParams['user_id'];
swagger注释里,在Authorization下增加一个user_id参数
生产环境下,再还原:
去掉代码里的从params里取user_id的逻辑
$user_id= $authInfo['user_id'];
swagger注释里去掉user_id参数的定义