From 762acbb368d6a901478fe3d6b2a3e30793f2c57c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=B8=9C=E4=BA=91?= Date: Thu, 18 Jan 2024 13:52:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(CoreMiddleware):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E7=9B=B4=E6=8E=A5=E8=BE=93=E5=87=BA=20Respon?= =?UTF-8?q?seInterface=20=E5=AE=9E=E4=BE=8B=E4=BC=9A=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 李东云 --- src/Middleware/CommonCoreMiddleware.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Middleware/CommonCoreMiddleware.php b/src/Middleware/CommonCoreMiddleware.php index 6de2d49..f055844 100644 --- a/src/Middleware/CommonCoreMiddleware.php +++ b/src/Middleware/CommonCoreMiddleware.php @@ -47,14 +47,14 @@ class CommonCoreMiddleware extends CoreMiddleware */ protected function transferToResponse( $response, - ServerRequestInterface $request + ServerRequestInterface $request, ): ResponsePlusInterface { $style = $this->apiStyleService->get(); - if ($style === ApiStyleService::RESTFUL) { - $response = $this->transferToRestfulResponse($response, $request); - } else { - $response = $this->transferToClassicResponse($response, $request); + if (!($response instanceof ResponseInterface)) { + $response = $style === ApiStyleService::RESTFUL + ? $this->transferToRestfulResponse($response, $request) + : $this->transferToClassicResponse($response, $request); } return new ResponsePlusProxy($response); @@ -68,7 +68,7 @@ class CommonCoreMiddleware extends CoreMiddleware */ protected function transferToRestfulResponse( null|array|Arrayable|Jsonable|ResponseInterface|string $response, - ServerRequestInterface $request + ServerRequestInterface $request, ): ResponseInterface { // 分页数据 if ($response instanceof LengthAwarePaginatorInterface) { @@ -103,7 +103,7 @@ class CommonCoreMiddleware extends CoreMiddleware */ protected function transferToClassicResponse( null|array|Arrayable|Jsonable|ResponseInterface|string $response, - ServerRequestInterface $request + ServerRequestInterface $request, ): ResponseInterface { $code_name = config('common.response.code_name'); $message_name = config('common.response.message_name'); @@ -162,6 +162,9 @@ class CommonCoreMiddleware extends CoreMiddleware new SwooleStream(Json::encode($response)) ); } + if ($response instanceof ResponseInterface) { + return $response; + } // 其他默认按字符串处理 return $this->response()->withAddedHeader(Header::CONTENT_TYPE, 'text/plain')->withBody( new SwooleStream((string)$response)