Skip to content

Commit 1094a52

Browse files
fix(metadata): allow description and other fields to be override seperately (#7442)
1 parent 1a46362 commit 1094a52

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/Metadata/Extractor/XmlResourceExtractor.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use ApiPlatform\OpenApi\Model\Operation as OpenApiOperation;
2626
use ApiPlatform\OpenApi\Model\Parameter as OpenApiParameter;
2727
use ApiPlatform\OpenApi\Model\RequestBody;
28+
use ApiPlatform\OpenApi\Model\Response;
2829
use ApiPlatform\State\OptionsInterface;
2930
use Symfony\Component\Config\Util\XmlUtils;
3031
use Symfony\Component\WebLink\Link;
@@ -204,12 +205,12 @@ private function buildOpenapi(\SimpleXMLElement $resource): bool|OpenApiOperatio
204205

205206
if (isset($openapi->responses->response)) {
206207
foreach ($openapi->responses->response as $response) {
207-
$data['responses'][(string) $response->attributes()->status] = [
208-
'description' => $this->phpize($response, 'description', 'string'),
209-
'content' => isset($response->content->values) ? $this->buildValues($response->content->values) : null,
210-
'headers' => isset($response->headers->values) ? $this->buildValues($response->headers->values) : null,
211-
'links' => isset($response->links->values) ? $this->buildValues($response->links->values) : null,
212-
];
208+
$data['responses'][(string) $response->attributes()->status] = new Response(
209+
description: $this->phpize($response, 'description', 'string'),
210+
content: isset($response->content->values) ? new \ArrayObject($this->buildValues($response->content->values)) : null,
211+
headers: isset($response->headers->values) ? new \ArrayObject($this->buildValues($response->headers->values)) : null,
212+
links: isset($response->links->values) ? new \ArrayObject($this->buildValues($response->links->values)) : null,
213+
);
213214
}
214215
}
215216

src/Metadata/Extractor/YamlResourceExtractor.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use ApiPlatform\OpenApi\Model\Operation as OpenApiOperation;
2626
use ApiPlatform\OpenApi\Model\Parameter;
2727
use ApiPlatform\OpenApi\Model\RequestBody;
28+
use ApiPlatform\OpenApi\Model\Response;
2829
use ApiPlatform\State\OptionsInterface;
2930
use Symfony\Component\WebLink\Link;
3031
use Symfony\Component\Yaml\Exception\ParseException;
@@ -235,6 +236,12 @@ private function buildOpenapi(array $resource): bool|OpenApiOperation|null
235236
'externalDocs' => new ExternalDocumentation(description: $value['description'] ?? '', url: $value['url'] ?? ''),
236237
'requestBody' => new RequestBody(description: $value['description'] ?? '', content: isset($value['content']) ? new \ArrayObject($value['content'] ?? []) : null, required: $value['required'] ?? false),
237238
'callbacks' => new \ArrayObject($value ?? []),
239+
'responses' => array_map(fn (array $response): Response => new Response(
240+
description: $response['description'] ?? '',
241+
headers: isset($response['headers']) ? new \ArrayObject($response['headers']) : null,
242+
content: isset($response['content']) ? new \ArrayObject($response['content']) : null,
243+
links: isset($response['links']) ? new \ArrayObject($response['links']) : null
244+
), $value),
238245
default => $value,
239246
};
240247

0 commit comments

Comments
 (0)