From 6346c539c05b4ee191b32e3afcf72e6c1b9d1395 Mon Sep 17 00:00:00 2001 From: KavajNaruj Date: Tue, 11 Nov 2025 15:40:25 +0100 Subject: [PATCH] Update OpenApiHandler.php --- src/Handlers/OpenApiHandler.php | 39 +++++++++++++-------------------- 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/src/Handlers/OpenApiHandler.php b/src/Handlers/OpenApiHandler.php index 7f372c4..e429980 100644 --- a/src/Handlers/OpenApiHandler.php +++ b/src/Handlers/OpenApiHandler.php @@ -484,6 +484,7 @@ private function createRequestBody(ApiHandlerInterface $handler) ]; $filesInBody = false; $requestBodyExample = []; + $result = []; foreach ($handler->params() as $param) { if ($param instanceof JsonInputParam) { $schema = json_decode($param->getSchema(), true); @@ -496,14 +497,11 @@ private function createRequestBody(ApiHandlerInterface $handler) } } } - return [ - 'description' => $param->getDescription(), - 'required' => $param->isRequired(), - 'content' => [ - 'application/json' => [ - 'schema' => $this->transformSchema($schema), - ], - ], + + $result['description'] = $param->getDescription(); + $result['required'] = $param->isRequired(); + $result['content']['application/json'] = [ + 'schema' => $this->transformSchema($schema), ]; } if ($param instanceof RawInputParam) { @@ -517,14 +515,10 @@ private function createRequestBody(ApiHandlerInterface $handler) $schema['examples'] = $examples; } } - return [ - 'description' => $param->getDescription(), - 'required' => $param->isRequired(), - 'content' => [ - 'text/plain' => [ - 'schema' => $schema, - ], - ], + $result['description'] ??= $param->getDescription(); + $result['required'] ??= $param->isRequired(); + $result['content']['text/plain'] = [ + 'schema' => $schema, ]; } if ($param->getType() === InputParam::TYPE_POST || $param->getType() === InputParam::TYPE_PUT) { @@ -594,17 +588,14 @@ private function createRequestBody(ApiHandlerInterface $handler) } $contentType = $filesInBody ? 'multipart/form-data' : 'application/x-www-form-urlencoded'; - return [ - 'required' => true, - 'content' => [ - $contentType => [ - 'schema' => $requestBodySchema, - ], - ], + + $result['required'] = true; + $result['content'][$contentType] = [ + 'schema' => $requestBodySchema, ]; } - return null; + return $result ?: null; } private function createIn($type)