docs: add swagger
This commit is contained in:
		
							parent
							
								
									82f3ef39c9
								
							
						
					
					
						commit
						332d4b2dce
					
				
							
								
								
									
										22
									
								
								app/Providers/Swagger.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								app/Providers/Swagger.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare(strict_types=1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace App\Providers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Carbon\Laravel\ServiceProvider;
 | 
				
			||||||
 | 
					use L5Swagger\L5SwaggerServiceProvider;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @OA\Info(
 | 
				
			||||||
 | 
					 *     title="Working Days API",
 | 
				
			||||||
 | 
					 *     version="1.0.0",
 | 
				
			||||||
 | 
					 * )
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class Swagger extends ServiceProvider
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public function register()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->app->register(L5SwaggerServiceProvider::class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										300
									
								
								config/l5-swagger.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										300
									
								
								config/l5-swagger.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,300 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return [
 | 
				
			||||||
 | 
					    'default' => 'default',
 | 
				
			||||||
 | 
					    'documentations' => [
 | 
				
			||||||
 | 
					        'default' => [
 | 
				
			||||||
 | 
					            'api' => [
 | 
				
			||||||
 | 
					                'title' => 'L5 Swagger UI',
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            'routes' => [
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * Route for accessing api documentation interface
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					                'api' => 'api/documentation',
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            'paths' => [
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * Edit to include full URL in ui for assets
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					                'use_absolute_path' => env('L5_SWAGGER_USE_ABSOLUTE_PATH', true),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * File name of the generated json documentation file
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					                'docs_json' => 'api-docs.json',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * File name of the generated YAML documentation file
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					                'docs_yaml' => 'api-docs.yaml',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                * Set this to `json` or `yaml` to determine which documentation file to use in UI
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					                'format_to_use_for_docs' => env('L5_FORMAT_TO_USE_FOR_DOCS', 'json'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * Absolute paths to directory containing the swagger annotations are stored.
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					                'annotations' => [
 | 
				
			||||||
 | 
					                    base_path('app'),
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    'defaults' => [
 | 
				
			||||||
 | 
					        'routes' => [
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Route for accessing parsed swagger annotations.
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'docs' => 'docs',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Route for Oauth2 authentication callback.
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'oauth2_callback' => 'api/oauth2-callback',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Middleware allows to prevent unexpected access to API documentation
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'middleware' => [
 | 
				
			||||||
 | 
					                'api' => [],
 | 
				
			||||||
 | 
					                'asset' => [],
 | 
				
			||||||
 | 
					                'docs' => [],
 | 
				
			||||||
 | 
					                'oauth2_callback' => [],
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Route Group options
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'group_options' => [],
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        'paths' => [
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Absolute path to location where parsed annotations will be stored
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'docs' => storage_path('api-docs'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Absolute path to directory where to export views
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'views' => base_path('resources/views/vendor/l5-swagger'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Edit to set the api's base path
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'base' => env('L5_SWAGGER_BASE_PATH', null),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Edit to set path where swagger ui assets should be stored
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'swagger_ui_assets_path' => env('L5_SWAGGER_UI_ASSETS_PATH', 'vendor/swagger-api/swagger-ui/dist/'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Absolute path to directories that should be excluded from scanning
 | 
				
			||||||
 | 
					             * @deprecated Please use `scanOptions.exclude`
 | 
				
			||||||
 | 
					             * `scanOptions.exclude` overwrites this
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'excludes' => [],
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        'scanOptions' => [
 | 
				
			||||||
 | 
					            /**
 | 
				
			||||||
 | 
					             * analyser: defaults to \OpenApi\StaticAnalyser .
 | 
				
			||||||
 | 
					             *
 | 
				
			||||||
 | 
					             * @see \OpenApi\scan
 | 
				
			||||||
 | 
					             */
 | 
				
			||||||
 | 
					            'analyser' => null,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /**
 | 
				
			||||||
 | 
					             * analysis: defaults to a new \OpenApi\Analysis .
 | 
				
			||||||
 | 
					             *
 | 
				
			||||||
 | 
					             * @see \OpenApi\scan
 | 
				
			||||||
 | 
					             */
 | 
				
			||||||
 | 
					            'analysis' => null,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /**
 | 
				
			||||||
 | 
					             * Custom query path processors classes.
 | 
				
			||||||
 | 
					             *
 | 
				
			||||||
 | 
					             * @link https://github.com/zircote/swagger-php/tree/master/Examples/processors/schema-query-parameter
 | 
				
			||||||
 | 
					             * @see \OpenApi\scan
 | 
				
			||||||
 | 
					             */
 | 
				
			||||||
 | 
					            'processors' => [
 | 
				
			||||||
 | 
					                // new \App\SwaggerProcessors\SchemaQueryParameter(),
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /**
 | 
				
			||||||
 | 
					             * pattern: string       $pattern File pattern(s) to scan (default: *.php) .
 | 
				
			||||||
 | 
					             *
 | 
				
			||||||
 | 
					             * @see \OpenApi\scan
 | 
				
			||||||
 | 
					             */
 | 
				
			||||||
 | 
					            'pattern' => null,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Absolute path to directories that should be excluded from scanning
 | 
				
			||||||
 | 
					             * @note This option overwrites `paths.excludes`
 | 
				
			||||||
 | 
					             * @see \OpenApi\scan
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            'exclude' => [],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					             * Allows to generate specs either for OpenAPI 3.0.0 or OpenAPI 3.1.0.
 | 
				
			||||||
 | 
					             * By default the spec will be in version 3.0.0
 | 
				
			||||||
 | 
					             */
 | 
				
			||||||
 | 
					            'open_api_spec_version' => env('L5_SWAGGER_OPEN_API_SPEC_VERSION', \L5Swagger\Generator::OPEN_API_DEFAULT_SPEC_VERSION),
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * API security definitions. Will be generated into documentation file.
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        'securityDefinitions' => [
 | 
				
			||||||
 | 
					            'securitySchemes' => [
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * Examples of Security schemes
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                'api_key_security_example' => [ // Unique name of security
 | 
				
			||||||
 | 
					                    'type' => 'apiKey', // The type of the security scheme. Valid values are "basic", "apiKey" or "oauth2".
 | 
				
			||||||
 | 
					                    'description' => 'A short description for security scheme',
 | 
				
			||||||
 | 
					                    'name' => 'api_key', // The name of the header or query parameter to be used.
 | 
				
			||||||
 | 
					                    'in' => 'header', // The location of the API key. Valid values are "query" or "header".
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                'oauth2_security_example' => [ // Unique name of security
 | 
				
			||||||
 | 
					                    'type' => 'oauth2', // The type of the security scheme. Valid values are "basic", "apiKey" or "oauth2".
 | 
				
			||||||
 | 
					                    'description' => 'A short description for oauth2 security scheme.',
 | 
				
			||||||
 | 
					                    'flow' => 'implicit', // The flow used by the OAuth2 security scheme. Valid values are "implicit", "password", "application" or "accessCode".
 | 
				
			||||||
 | 
					                    'authorizationUrl' => 'http://example.com/auth', // The authorization URL to be used for (implicit/accessCode)
 | 
				
			||||||
 | 
					                    //'tokenUrl' => 'http://example.com/auth' // The authorization URL to be used for (password/application/accessCode)
 | 
				
			||||||
 | 
					                    'scopes' => [
 | 
				
			||||||
 | 
					                        'read:projects' => 'read your projects',
 | 
				
			||||||
 | 
					                        'write:projects' => 'modify projects in your account',
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                /* Open API 3.0 support
 | 
				
			||||||
 | 
					                'passport' => [ // Unique name of security
 | 
				
			||||||
 | 
					                    'type' => 'oauth2', // The type of the security scheme. Valid values are "basic", "apiKey" or "oauth2".
 | 
				
			||||||
 | 
					                    'description' => 'Laravel passport oauth2 security.',
 | 
				
			||||||
 | 
					                    'in' => 'header',
 | 
				
			||||||
 | 
					                    'scheme' => 'https',
 | 
				
			||||||
 | 
					                    'flows' => [
 | 
				
			||||||
 | 
					                        "password" => [
 | 
				
			||||||
 | 
					                            "authorizationUrl" => config('app.url') . '/oauth/authorize',
 | 
				
			||||||
 | 
					                            "tokenUrl" => config('app.url') . '/oauth/token',
 | 
				
			||||||
 | 
					                            "refreshUrl" => config('app.url') . '/token/refresh',
 | 
				
			||||||
 | 
					                            "scopes" => []
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                'sanctum' => [ // Unique name of security
 | 
				
			||||||
 | 
					                    'type' => 'apiKey', // Valid values are "basic", "apiKey" or "oauth2".
 | 
				
			||||||
 | 
					                    'description' => 'Enter token in format (Bearer <token>)',
 | 
				
			||||||
 | 
					                    'name' => 'Authorization', // The name of the header or query parameter to be used.
 | 
				
			||||||
 | 
					                    'in' => 'header', // The location of the API key. Valid values are "query" or "header".
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            'security' => [
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * Examples of Securities
 | 
				
			||||||
 | 
					                */
 | 
				
			||||||
 | 
					                [
 | 
				
			||||||
 | 
					                    /*
 | 
				
			||||||
 | 
					                    'oauth2_security_example' => [
 | 
				
			||||||
 | 
					                        'read',
 | 
				
			||||||
 | 
					                        'write'
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    'passport' => []
 | 
				
			||||||
 | 
					                    */
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * Set this to `true` in development mode so that docs would be regenerated on each request
 | 
				
			||||||
 | 
					         * Set this to `false` to disable swagger generation on production
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        'generate_always' => env('L5_SWAGGER_GENERATE_ALWAYS', false),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * Set this to `true` to generate a copy of documentation in yaml format
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        'generate_yaml_copy' => env('L5_SWAGGER_GENERATE_YAML_COPY', false),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * Edit to trust the proxy's ip address - needed for AWS Load Balancer
 | 
				
			||||||
 | 
					         * string[]
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        'proxy' => false,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * Configs plugin allows to fetch external configs instead of passing them to SwaggerUIBundle.
 | 
				
			||||||
 | 
					         * See more at: https://github.com/swagger-api/swagger-ui#configs-plugin
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        'additional_config_url' => null,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * Apply a sort to the operation list of each API. It can be 'alpha' (sort by paths alphanumerically),
 | 
				
			||||||
 | 
					         * 'method' (sort by HTTP method).
 | 
				
			||||||
 | 
					         * Default is the order returned by the server unchanged.
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        'operations_sort' => env('L5_SWAGGER_OPERATIONS_SORT', null),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * Pass the validatorUrl parameter to SwaggerUi init on the JS side.
 | 
				
			||||||
 | 
					         * A null value here disables validation.
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        'validator_url' => null,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * Swagger UI configuration parameters
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        'ui' => [
 | 
				
			||||||
 | 
					            'display' => [
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * Controls the default expansion setting for the operations and tags. It can be :
 | 
				
			||||||
 | 
					                 * 'list' (expands only the tags),
 | 
				
			||||||
 | 
					                 * 'full' (expands the tags and operations),
 | 
				
			||||||
 | 
					                 * 'none' (expands nothing).
 | 
				
			||||||
 | 
					                 */
 | 
				
			||||||
 | 
					                'doc_expansion' => env('L5_SWAGGER_UI_DOC_EXPANSION', 'none'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                /**
 | 
				
			||||||
 | 
					                 * If set, enables filtering. The top bar will show an edit box that
 | 
				
			||||||
 | 
					                 * you can use to filter the tagged operations that are shown. Can be
 | 
				
			||||||
 | 
					                 * Boolean to enable or disable, or a string, in which case filtering
 | 
				
			||||||
 | 
					                 * will be enabled using that string as the filter expression. Filtering
 | 
				
			||||||
 | 
					                 * is case-sensitive matching the filter expression anywhere inside
 | 
				
			||||||
 | 
					                 * the tag.
 | 
				
			||||||
 | 
					                 */
 | 
				
			||||||
 | 
					                'filter' => env('L5_SWAGGER_UI_FILTERS', true), // true | false
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            'authorization' => [
 | 
				
			||||||
 | 
					                /*
 | 
				
			||||||
 | 
					                 * If set to true, it persists authorization data, and it would not be lost on browser close/refresh
 | 
				
			||||||
 | 
					                 */
 | 
				
			||||||
 | 
					                'persist_authorization' => env('L5_SWAGGER_UI_PERSIST_AUTHORIZATION', false),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                'oauth2' => [
 | 
				
			||||||
 | 
					                    /*
 | 
				
			||||||
 | 
					                    * If set to true, adds PKCE to AuthorizationCodeGrant flow
 | 
				
			||||||
 | 
					                    */
 | 
				
			||||||
 | 
					                    'use_pkce_with_authorization_code_grant' => false,
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					         * Constants which can be used in annotations
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					        'constants' => [
 | 
				
			||||||
 | 
					            'L5_SWAGGER_CONST_HOST' => env('L5_SWAGGER_CONST_HOST', 'http://my-default-host.com'),
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
							
								
								
									
										0
									
								
								resources/views/vendor/l5-swagger/.gitkeep
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								resources/views/vendor/l5-swagger/.gitkeep
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										78
									
								
								resources/views/vendor/l5-swagger/index.blade.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								resources/views/vendor/l5-swagger/index.blade.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="en">
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8">
 | 
				
			||||||
 | 
					    <title>{{config('l5-swagger.documentations.'.$documentation.'.api.title')}}</title>
 | 
				
			||||||
 | 
					    <link rel="stylesheet" type="text/css" href="{{ l5_swagger_asset($documentation, 'swagger-ui.css') }}">
 | 
				
			||||||
 | 
					    <link rel="icon" type="image/png" href="{{ l5_swagger_asset($documentation, 'favicon-32x32.png') }}" sizes="32x32"/>
 | 
				
			||||||
 | 
					    <link rel="icon" type="image/png" href="{{ l5_swagger_asset($documentation, 'favicon-16x16.png') }}" sizes="16x16"/>
 | 
				
			||||||
 | 
					    <style>
 | 
				
			||||||
 | 
					    html
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        box-sizing: border-box;
 | 
				
			||||||
 | 
					        overflow: -moz-scrollbars-vertical;
 | 
				
			||||||
 | 
					        overflow-y: scroll;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    *,
 | 
				
			||||||
 | 
					    *:before,
 | 
				
			||||||
 | 
					    *:after
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        box-sizing: inherit;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    body {
 | 
				
			||||||
 | 
					      margin:0;
 | 
				
			||||||
 | 
					      background: #fafafa;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					<div id="swagger-ui"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script src="{{ l5_swagger_asset($documentation, 'swagger-ui-bundle.js') }}"></script>
 | 
				
			||||||
 | 
					<script src="{{ l5_swagger_asset($documentation, 'swagger-ui-standalone-preset.js') }}"></script>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					    window.onload = function() {
 | 
				
			||||||
 | 
					        // Build a system
 | 
				
			||||||
 | 
					        const ui = SwaggerUIBundle({
 | 
				
			||||||
 | 
					            dom_id: '#swagger-ui',
 | 
				
			||||||
 | 
					            url: "{!! $urlToDocs !!}",
 | 
				
			||||||
 | 
					            operationsSorter: {!! isset($operationsSorter) ? '"' . $operationsSorter . '"' : 'null' !!},
 | 
				
			||||||
 | 
					            configUrl: {!! isset($configUrl) ? '"' . $configUrl . '"' : 'null' !!},
 | 
				
			||||||
 | 
					            validatorUrl: {!! isset($validatorUrl) ? '"' . $validatorUrl . '"' : 'null' !!},
 | 
				
			||||||
 | 
					            oauth2RedirectUrl: "{{ route('l5-swagger.'.$documentation.'.oauth2_callback', [], $useAbsolutePath) }}",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            requestInterceptor: function(request) {
 | 
				
			||||||
 | 
					                request.headers['X-CSRF-TOKEN'] = '{{ csrf_token() }}';
 | 
				
			||||||
 | 
					                return request;
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            presets: [
 | 
				
			||||||
 | 
					                SwaggerUIBundle.presets.apis,
 | 
				
			||||||
 | 
					                SwaggerUIStandalonePreset
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            plugins: [
 | 
				
			||||||
 | 
					                SwaggerUIBundle.plugins.DownloadUrl
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            layout: "StandaloneLayout",
 | 
				
			||||||
 | 
					            docExpansion : "{!! config('l5-swagger.defaults.ui.display.doc_expansion', 'none') !!}",
 | 
				
			||||||
 | 
					            deepLinking: true,
 | 
				
			||||||
 | 
					            filter: {!! config('l5-swagger.defaults.ui.display.filter') ? 'true' : 'false' !!},
 | 
				
			||||||
 | 
					            persistAuthorization: "{!! config('l5-swagger.defaults.ui.authorization.persist_authorization') ? 'true' : 'false' !!}",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        window.ui = ui
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @if(in_array('oauth2', array_column(config('l5-swagger.defaults.securityDefinitions.securitySchemes'), 'type')))
 | 
				
			||||||
 | 
					        ui.initOAuth({
 | 
				
			||||||
 | 
					            usePkceWithAuthorizationCodeGrant: "{!! (bool)config('l5-swagger.defaults.ui.authorization.oauth2.use_pkce_with_authorization_code_grant') !!}"
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        @endif
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@ -3,5 +3,5 @@
 | 
				
			|||||||
use Illuminate\Support\Facades\Route;
 | 
					use Illuminate\Support\Facades\Route;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Route::get('/', function () {
 | 
					Route::get('/', function () {
 | 
				
			||||||
    return view('welcome');
 | 
					    return redirect('/api/documentation');
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								storage/api-docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								storage/api-docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					*
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user