Ctrl K
ComunidadGuías…

innopacks/restapi/config/scribe_panel.php

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
<?php
/**
 * Copyright (c) Since 2024 InnoShop - All Rights Reserved
 *
 * @link       https://www.innoshop.com
 * @author     InnoShop <[email protected]>
 * @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 Panel API Documentation',

    'description' => 'Admin panel RESTful API for InnoShop e-commerce platform.',

    'base_url' => config('app.url'),

    'routes' => [
        [
            'match' => [
                'prefixes' => ['api/panel/*'],
                'domains'  => ['*'],
            ],
            'include' => [],
            'exclude' => [],
        ],
    ],

    'type' => 'laravel',

    'theme' => 'default',

    // Staging for HTML/CSS before Writer moves it to public/vendor/scribe_panel.
    // Do not use public/docs/panel: mkdir creates public/docs/; only the leaf dir is renamed away, leaving an empty public/docs/.
    'static' => [
        'output_path' => 'storage/framework/scribe_panel_build',
    ],

    'laravel' => [
        'add_routes'       => true,
        'docs_url'         => '/docs/panel',
        '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'     => true,
        'in'          => 'bearer',
        'name'        => 'Authorization',
        'use_value'   => env('SCRIBE_AUTH_KEY'),
        'placeholder' => '{YOUR_AUTH_KEY}',
        'extra_info'  => 'Obtain a token via `POST /api/panel/login`. 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,
    ],
];