• ecshopx开发步骤及常见问题


    开发步骤

    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参数的定义

  • 相关阅读:
    闭包
    关于this
    插件开发(对象级)
    IFC
    flex.css
    js移动端滑动事件
    Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug
    vue 组件化spreadjs预览excel
    feign 熔断工厂 fallbackFactory的简单实现
    bat脚本批量启动程序
  • 原文地址:https://www.cnblogs.com/showker/p/16279597.html
Copyright © 2020-2023  润新知