* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ if (! class_exists(\Knuckles\Scribe\Config\Defaults::class)) { return []; } use InnoShop\Restapi\Middleware\EnsureApiDocumentationEnabled; use Knuckles\Scribe\Config\Defaults; use Knuckles\Scribe\Extracting\Strategies; return [ 'title' => 'InnoShop Front API Documentation', 'description' => 'Customer-facing RESTful API for InnoShop e-commerce platform.', 'base_url' => config('app.url'), 'routes' => [ [ 'match' => [ 'prefixes' => ['api/*'], 'domains' => ['*'], ], 'include' => [], // `api/panel/*` does not match the bare `api/panel` root (IntroductionController); that route still matches `api/*`. 'exclude' => ['api/panel', 'api/panel/*'], ], ], 'type' => 'laravel', 'theme' => 'default', 'static' => [ 'output_path' => 'public/docs', ], 'laravel' => [ 'add_routes' => true, 'docs_url' => '/docs', 'assets_directory' => null, 'middleware' => [ EnsureApiDocumentationEnabled::class, ], ], 'external' => [ 'html_attributes' => [], ], 'try_it_out' => [ 'enabled' => true, 'base_url' => null, 'use_csrf' => false, 'csrf_url' => '/sanctum/csrf-cookie', ], 'auth' => [ 'enabled' => true, 'default' => false, 'in' => 'bearer', 'name' => 'Authorization', 'use_value' => env('SCRIBE_AUTH_KEY'), 'placeholder' => '{YOUR_AUTH_KEY}', 'extra_info' => 'Obtain a token via `POST /api/login` or `POST /api/register`. Pass it as `Authorization: Bearer {token}`.', ], 'example_languages' => ['bash', 'javascript', 'php'], 'postman' => [ 'enabled' => true, 'overrides' => [], ], 'openapi' => [ 'enabled' => true, 'version' => '3.0.3', 'overrides' => [], 'generators' => [], ], 'groups' => [ 'default' => 'Other', 'order' => [], ], 'logo' => false, 'last_updated' => 'Last updated: {date:F j, Y}', 'examples' => [ 'faker_seed' => 1234, 'models_source' => ['factoryCreate', 'factoryMake', 'databaseFirst'], ], // Scribe 5.x: GetFromRouteRules / GetFromDocBlocks in sub-namespaces were removed; use Defaults. 'strategies' => [ 'metadata' => [ ...Defaults::METADATA_STRATEGIES, ], 'headers' => [ ...Defaults::HEADERS_STRATEGIES, Strategies\StaticData::withSettings(data: [ 'Content-Type' => 'application/json', 'Accept' => 'application/json', ]), ], 'urlParameters' => [ ...Defaults::URL_PARAMETERS_STRATEGIES, ], 'queryParameters' => [ ...Defaults::QUERY_PARAMETERS_STRATEGIES, ], 'bodyParameters' => [ ...Defaults::BODY_PARAMETERS_STRATEGIES, ], 'responses' => [ Strategies\Responses\UseResponseAttributes::class, Strategies\Responses\UseTransformerTags::class, Strategies\Responses\UseApiResourceTags::class, Strategies\Responses\UseResponseTag::class, Strategies\Responses\UseResponseFileTag::class, ], 'responseFields' => [ ...Defaults::RESPONSE_FIELDS_STRATEGIES, ], ], 'database_connections_to_transact' => [config('database.default')], 'fractal' => [ 'serializer' => null, ], ];