diff --git a/src/Writing/OpenApiSpecGenerators/BaseGenerator.php b/src/Writing/OpenApiSpecGenerators/BaseGenerator.php index 0674e5c1..8bd8cc47 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; } } } @@ -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, ], ],