PHP Classes

File: config/l5-swagger.php

Recommend this page to a friend!
  Classes of Maniruzzaman Akash   Advanced Laravel CRUD API   config/l5-swagger.php   Download  
File: config/l5-swagger.php
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: Advanced Laravel CRUD API
Implement API that provide CRUD operations
Author: By
Last change:
Date: 2 years ago
Size: 8,574 bytes
 

Contents

Class file image Download
<?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 exclude 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/schema-query-parameter-processor
             * @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 exclude from scanning
             * @note This option overwrites `paths.excludes`
             * @see \OpenApi\scan
            */
           
'exclude' => [],
        ],

       
/*
         * API security definitions. Will be generated into documentation file.
        */
       
'securityDefinitions' => [
           
'securitySchemes' => [
               
'bearer' => [ // Unique name of security
                   
'type' => 'apiKey', // Valid values are "basic", "apiKey" or "oauth2".
                   
'description' => 'Bearer token, Ex: 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".
                   
'bearerFormat' => 'JWT',
                ],
            ],
           
'security' => [
               
/*
                * Examples of Securities
                */
               
[
                   
'bearer' => [ // Unique name of security
                       
'type' => 'apiKey', // Valid values are "basic", "apiKey" or "oauth2".
                       
'description' => 'Bearer token, Ex: 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".
                       
'scheme' => 'bearer',
                    ],
                ],
            ],
        ],

       
/*
         * 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),
            ],
        ],
       
/*
         * Constants which can be used in annotations
         */
       
'constants' => [
           
'L5_SWAGGER_CONST_HOST' => env('L5_SWAGGER_CONST_HOST', 'http://my-default-host.com'),
        ],
    ],
];