API doc example
unknown
plain_text
3 days ago
2.1 kB
6
Indexable
<?php declare(strict_types=1); namespace Zino\CoreBundle\Controller\Api; use Nelmio\ApiDocBundle\Annotation\Areas; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Attributes\HeaderParameter; use OpenApi\Attributes\JsonContent; use OpenApi\Attributes\Parameter as OpenApiParameter; use OpenApi\Attributes\Response as OpenApiResponse; use OpenApi\Attributes\Schema; use OpenApi\Attributes\Tag as OpenApiTag; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Requirement\EnumRequirement; use Zino\CoreBundle\Attributes\SpaRoute; use Zino\CoreBundle\Dto\Features\Error\NotFound\NotFoundResponseBody; use Zino\CoreBundle\Dto\JsonForm\Form; use Zino\CoreBundle\Form\Factory\JsonFormEnum; use Zino\CoreBundle\Form\Factory\JsonFormFactory; #[Route(path: '/spa/forms', name: 'spa_forms_')] class FormsApiController extends AbstractController { #[Areas(['new_api'])] #[OpenApiParameter(name: 'form', description: 'Returns form', in: 'path', schema: new Schema(type: 'string', enum: JsonFormEnum::class))] #[OpenApiResponse(response: Response::HTTP_OK, description: 'Returns schema for requested form', content: new JsonContent(ref: new Model(type: Form::class)))] #[OpenApiResponse(response: Response::HTTP_NOT_FOUND, description: 'Happens when requesting undefined form', content: new JsonContent(ref: new Model(type: NotFoundResponseBody::class)))] #[HeaderParameter(name: 'X-Locale', description: 'Pass request locale', required: true, schema: new Schema(type: 'string', default: 'en'))] #[OpenApiTag(name: 'forms')] #[SpaRoute] #[Route( path: '/{form}', name: 'get_form', requirements: ['form' => new EnumRequirement(JsonFormEnum::class)], methods: ['GET'], )] public function getForm(JsonFormEnum $form, JsonFormFactory $jsonFormFactory): JsonResponse { return new JsonResponse($jsonFormFactory->getForm($form)->get()); } }
Editor is loading...
Leave a Comment