我在使用 RPC远程调用 插件,远程获取信息。
当我从其他服务器请求rpc到达后,我获取到的参数是一个数组,如下代码。
我现在需要将这个$args转换成Request类型才能请求getProject,我需要如何转换一下,或者其他方法才能请求?
namespace service;
class User
{
public function get($args)
{
// 我需要将这个$args转换成Request类型才能请求getProject,我需要如何转换一下,或者其他方法才能请求?
$result = (new ProjectController)->getProject($args ???);
return response_rpc_json(0, '获取成功', $args);
}
}
这是我已经写好一个api接口,可以正常运行,但同时我希望RPC接口也能直接调用,不要改动这个方法。
class ProjectController
{
/**
* 提供搜索选项
* @param Request $request
* @return Response
* @throws BadRequestHttpException
*/
public function getProject(Request $request): Response
{
return show('Success');
}
}
可以改动getProject的$request类型,解决问题,但是这样会为后面埋下很多坑。有没有大佬能指点一二。
把业务放在service 层 接口 和 rpc 只处理接受参数 和 返回 等信息,这样就共用的 现在只能这么做 rpc 和 框架的Request 两码事
我模拟了一个Request请求,然后传递过去,勉强可以解决问题。
你这种 可以看一下 webman底层源码 他是怎么写的 你就怎么写 不过不建议 rpc就是简单服务器端 高性能互相通信的,他不是处理表单的
因为我的接口已经写好了,我想直接使用原来的api,如果重新适配一个service层的话,工程太大了。业务,能跑起来就行,其他的暂时不重要。