非标准化 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 参数转发到不同路由去吗?还是有其他比较稳妥的做法呢?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9

可以~预反射好像时

2年前 评论

统一路由到一个Controller中,按照标准化的数据解析出应该调用的Service,完成调用

2年前 评论
际遇 (楼主) 2年前
deatil 2年前
际遇 (楼主) 2年前
deatil 2年前

Source code

我本来想找找关于动态调用控制器、方法的源码,但后来发现直接调用 route 似乎更合适。

自己也没实际用过,不知道能不能满足你的需求。

respondWithRoute 源码

Demo

Route::get('temp', function (\Illuminate\Routing\Router $router) {
    return $router->respondWithRoute('test');
});
Route::get('test', function (\Illuminate\Routing\Router $router) {
    dd($router);
//    return 'Test page';
})->name('test');
2年前 评论
际遇 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!