From f2c75ebc9de33dfd46009aa378470ef14333532a Mon Sep 17 00:00:00 2001 From: Thomas Lallement Date: Thu, 11 Mar 2021 19:06:17 +0100 Subject: [PATCH] Fix Open API doc for DateTime requirements When using the following requierement: ``` @Rest\QueryParam(name="updatedFrom", strict=true, nullable=true, requirements=@Constraints\DateTime("Y-m-d\TH:i:s")) ``` According to the OpenAPI 3.0 documentation https://swagger.io/specification/, we should have "format": "date-time" rather than "format": "DateTime" in the generated doc --- RouteDescriber/FosRestDescriber.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RouteDescriber/FosRestDescriber.php b/RouteDescriber/FosRestDescriber.php index 8f3e814..cc07217 100644 --- a/RouteDescriber/FosRestDescriber.php +++ b/RouteDescriber/FosRestDescriber.php @@ -18,6 +18,7 @@ use Nelmio\ApiDocBundle\OpenApiPhp\Util; use OpenApi\Annotations as OA; use Symfony\Component\Routing\Route; use Symfony\Component\Validator\Constraint; +use Symfony\Component\Validator\Constraints\DateTime; use Symfony\Component\Validator\Constraints\Regex; final class FosRestDescriber implements RouteDescriberInterface @@ -104,6 +105,11 @@ final class FosRestDescriber implements RouteDescriberInterface private function getFormat($requirements) { if ($requirements instanceof Constraint && !$requirements instanceof Regex) { + + if ($requirements instanceof DateTime) { + return 'date-time'; + } + $reflectionClass = new \ReflectionClass($requirements); return $reflectionClass->getShortName();