非标准化 api 接口的问题
1. 运行环境
laravel sail
1). 当前使用的 Laravel 版本?
laravel9
2). 当前使用的 php/php-fpm 版本?
PHP 版本:8.0
php-fpm 版本:8.0
2. 问题描述?
给一个前端小程序写后端 api 服务,小程序那边的接口规范是通过公共请求参数中的 service 参数来确定接口的,如下:
公共请求参数:
{
"biz_content": {
"licensePlate": "京W11111",
"feeStatus": "FINISH",
"pageNum": 1,
"pageSize": 10,
"userId": "208842226xxxxxxx",
"token": "12345xxxxx"
},
"service": "api.parking.queryPayListByLicensePlate"
}
我想问一下,在 laravel 中能处理这种 api 请求吗?能在中间件中通过识别 service 参数转发到不同路由去吗?还是有其他比较稳妥的做法呢?
可以~预反射好像时
统一路由到一个Controller中,按照标准化的数据解析出应该调用的Service,完成调用
这做法挺邪性
Source code
我本来想找找关于动态调用控制器、方法的源码,但后来发现直接调用 route 似乎更合适。
自己也没实际用过,不知道能不能满足你的需求。
respondWithRoute 源码
Demo