From 4232e88b337d4a3140de991e31c3a9ff9d272f0f Mon Sep 17 00:00:00 2001 From: Raphael Date: Wed, 18 Mar 2026 11:38:31 +0100 Subject: [PATCH 1/2] fix: adding 'required' flag at the correct level within collections, for wrapped data --- src/Writing/OpenApiSpecGenerators/BaseGenerator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Writing/OpenApiSpecGenerators/BaseGenerator.php b/src/Writing/OpenApiSpecGenerators/BaseGenerator.php index 8f492ab8..bb7a90ea 100644 --- a/src/Writing/OpenApiSpecGenerators/BaseGenerator.php +++ b/src/Writing/OpenApiSpecGenerators/BaseGenerator.php @@ -230,7 +230,7 @@ public function generateSchemaForResponseValue(mixed $value, OutputEndpointData $path ); if ($required) { - $schema['required'] = $required; + $schema['items']['required'] = $required; } } } From fd30eadea404e40dfd204b2f5f9360ade056071d Mon Sep 17 00:00:00 2001 From: Raphael Date: Wed, 18 Mar 2026 11:38:43 +0100 Subject: [PATCH 2/2] fix: adding 'required' flag at the correct level within collections, for unwrapped data --- .../OpenApiSpecGenerators/BaseGenerator.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Writing/OpenApiSpecGenerators/BaseGenerator.php b/src/Writing/OpenApiSpecGenerators/BaseGenerator.php index bb7a90ea..c00d8ed1 100644 --- a/src/Writing/OpenApiSpecGenerators/BaseGenerator.php +++ b/src/Writing/OpenApiSpecGenerators/BaseGenerator.php @@ -490,14 +490,22 @@ protected function generateResponseContentSpec(?string $responseContent, OutputE return [$key => $this->generateSchemaForResponseValue($value, $endpoint, $key)]; })->toArray(); + $required = $this->filterRequiredResponseFields($endpoint, array_keys($properties)); + + $items = [ + 'type' => $this->convertScribeOrPHPTypeToOpenAPIType(gettype($decoded[0])), + 'properties' => $this->objectIfEmpty($properties), + ]; + + if ($required) { + $items['required'] = $required; + } + return [ $contentType => [ 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => $this->convertScribeOrPHPTypeToOpenAPIType(gettype($decoded[0])), - 'properties' => $this->objectIfEmpty($properties), - ], + 'items' => $items, 'example' => $decoded, ], ],