首页 > 解决方案 > Laravel Lumen,Swagger 返回 json 而不是视图

问题描述

我使用以下配置安装了SwaggerLume

class ApiController extends Controller
{
    /**
     * @OA\Info(
     *      version="3.0",
     *      title="OpenApi Documentation",
     *      description=""
     * )
     *
     * @OA\Server(
     *      url=SWAGGER_LUME_CONST_HOST,
     *      description="API Server"
     * )
     */
     ...
}

<?php

return [
    'api' => [
        'title' => 'Swagger Lume API',
    ],

    'routes' => [
        'api' => '/api/documentation',
        'docs' => '/api/oa',
        'oauth2_callback' => '/api/oauth2-callback',
        'assets' => '/swagger-ui-assets',
        'middleware' => [
            'api' => [],
            'asset' => [],
            'docs' => [],
            'oauth2_callback' => [],
        ],
    ],

    'paths' => [
        'docs' => storage_path('api-docs'),
        'docs_json' => 'api-docs.json',
        'annotations' => base_path('app'),
        'excludes' => [],
//        'base' => env('L5_SWAGGER_BASE_PATH', null),

        /*
        |--------------------------------------------------------------------------
        | Absolute path to directory where to export views
        |--------------------------------------------------------------------------
        */
        'views' => base_path('resources/views/vendor/swagger-lume'),
    ],
    'generate_always' => env('SWAGGER_GENERATE_ALWAYS', false),
    'swagger_version' => env('SWAGGER_VERSION', '3.0'),
    'proxy' => false,

    'additional_config_url' => null,
    'operations_sort' => env('L5_SWAGGER_OPERATIONS_SORT', null),
    'validator_url' => null,
    'constants' => [
        'SWAGGER_LUME_CONST_HOST' => env('SWAGGER_LUME_CONST_HOST', 'http://my-default-host.com'),
    ],
];

我应该注意到我评论了

//        'base' => env('L5_SWAGGER_BASE_PATH', null),

因为 swagger 3 不支持 basePath。

和 .env

SWAGGER_LUME_CONST_HOST=payment.local
L5_SWAGGER_BASE_PATH=payment.local

但结果是

在此处输入图像描述

不是景色。我也有观点

在此处输入图像描述

标签: laravelswaggerswagger-uilumen

解决方案


我在这里发布了一个适合我的解决方法。


推荐阅读