后置中间件中获取响应主体内容,并转换为json格式返回

windss

问题描述

接口返回数据用数组,打算在后置中间件中把数组转换为json返回给前端,如何在后置中间件里获取response主体内容,并转换为json?
尝试用$response->rawBody
就想在中间件中实现,不要推荐其它方案,如果需要其它方案,就不会在这提问了

RegController 接口代码

namespace app\api\controller;

use support\Request;

class RegController{
    public function reg(Request $req){
        $param = [
            'status'=>1
        ];
        return showReturnCode(200,$param,'success'); //返回的是数组

    }
}

后置中间件代码

namespace app\api\middleware;

use Webman\Http\Request;
use Webman\Http\Response;
use Webman\MiddlewareInterface;

class ResJsonMiddleware implements MiddlewareInterface {
    public function process(Request $request, callable $handler): Response {
        $response = $handler($request);
        $rawBody = $response->rawBody();
        print_r($rawBody);   //只打印 Array 这几个字符
        return $response;
    }
}
175 1 0
1个回答

walkor

控制器不支持返回数组

🔝