Laravel API 接口 传公共参数 (如 packageName、Version 等), 如何处理呢?
问题1、API 接口设计的时候, 下面参数如何做检查, 是在基类还是中间件中处理呢?或者有更好的方式
问题2、每个模型中都要保存以下字段,如果写一个默认的Model基类,自动获取下面的参数,不需要每次做Created或者Save时填写?
// 包名 com.***.advert
public $packageName;
// 包版本 7.0.10
public $packageVersion;
// 包数字版本号 7010
public $packageVersionNumber;
// 包类型 Android | IOS
public $packagePlatform;
// 包渠道 应用市场 或者 其他推广渠道
public $packageChannel;
// API 版本 vnd.advert.v1(v1)
public $apiVersion;
// 项目ID
public $projectId;
// ABTest 需要
public $bucketId;
// 请求参数集合,除公共参数外所有请求参数
public $bizContent;
// IP
public $ip;
十分感谢社区的朋友能给我指导,再次感谢!
1:中间件拦截 2:saving 方法设置。
仅供参考
可以这样来做,做一个中间件,要写这些参数入库的时候经过这个中间件。
然后中间件里面可以获取这些参数,把验证通过了的参数,放到request的ParameterBag里面去。代码类似这样
然后模型里面的保存只需要这样就可以取出来,如果确定一定有或者在验证阶段没有就赋默认值 ,就可以不用加判断
没有最好的方法,就看怎么做才适合你的系统。