vendor/launchpad/backend/src/Api/Controller/SwaggerController.php line 15

Open in your IDE?
  1. <?php
  2. namespace LaunchPad\Bundle\LaunchPadBundle\Api\Controller;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. class SwaggerController extends BaseApiController
  7. {
  8.     /**
  9.      * @Route("/swagger", name="api_root_swagger")
  10.      */
  11.     public function indexAction(Request $request)
  12.     {
  13.         $apiDefinitions $this->getParameter('api');
  14.         $scheme $request->query->get('scheme');
  15.         if(!$scheme) {
  16.             return $this->render(
  17.                 "@WebsiteTemplates/swagger/index.html.twig",
  18.                 [
  19.                     'definitions' => $apiDefinitions
  20.                 ]
  21.             );
  22.         }
  23.         return $this->render(
  24.             "@WebsiteTemplates/swagger/ui.html.twig",
  25.             [
  26.                 'url' => 'swagger/definition?scheme=' urlencode($scheme)
  27.             ]
  28.         );
  29.     }
  30.     /**
  31.      * @Route("/swagger/definition", name="api_definition_swagger")
  32.      * @param Request $request
  33.      * @return Response
  34.      */
  35.     public function apiDefinitionAction(Request $request)
  36.     {
  37.         $scheme $request->query->get('scheme');
  38.         $apiDefinitions $this->getParameter('api');
  39.         //dump($apiDefinitions);die;
  40.         $selectedDefinition null;
  41.         foreach($apiDefinitions as $definition) {
  42.             if($definition['name'] == $scheme) {
  43.                 $selectedDefinition $definition;
  44.                 break;
  45.             }
  46.         }
  47.         //dump($selectedDefinition);die;
  48.         $openapi = \OpenApi\scan($selectedDefinition['paths']);
  49.         header('Content-Type: application/json');
  50.         return new Response($openapi->toJson());
  51.     }
  52. }