我已使用DarkaOnLine / L5-Swagger软件包在Swagger中安装了laravel 5.6,我已按照
的安装说明进行操作php作曲家需要“ darkaonline / l5-swagger:5.6。*”
php artisan供应商:发布--provider “ L5Swagger \ L5SwaggerServiceProvider”
我也设置了
L5_SWAGGER_GENERATE_ALWAYS = true
在我的环境中并创建了一个控制器并添加了
/**
* @SWG\Swagger(
* schemes={"http","https"},
* host="api.host.com",
* basePath="/",
* @SWG\Info(
* version="1.0.0",
* title="This is my website cool API",
* description="Api description...",
* termsOfService="",
* @SWG\Contact(
* email="contact@mysite.com"
* ),
* @SWG\License(
* name="Private License",
* url="URL to the license"
* )
* ),
* @SWG\ExternalDocumentation(
* description="Find out more about my website",
* url="http..."
* )
* )
*/
之后,我输入
php artisan l5-swagger:generate
php artisan vendor:publish
当我访问/ api / documentation时,出现白屏,并且在控制台中出现以下错误
我们将非常感谢您的帮助。
答案 0 :(得分:1)
我已逐步解决了该问题:
只需从供应商文件夹中复制文件,然后将其添加到特定路径中即可。
从以下位置复制所有文件:laravel-yourapp \ vendor \ swagger-api \ swagger-ui \ dist
然后将所有文件粘贴到路径:laravel-yourapp \ public \ docs \ asset
答案 1 :(得分:0)
在调试之后,我发现当我通过打开的本地主机端口(例如http://localhost:8000/api/documentation)访问swagger页面时出现错误,解决方案是通过完整的laravel url(例如http://localhost/my-app-name/public/api/documentation)访问它。
答案 2 :(得分:0)
1 - 尝试将 /dist
中的 \vendor\swagger-api\swagger-ui
目录复制到 \public_html\swagger-api\
2 - 将 "swagger_ui_assets_path"
地址从 \config\l5-swagger.php
更改为 'public_html\swagger-api\'
3 - 更改视图文件 \resources\views\vendor\l5-swagger\index.blade.php
4- 输入命令 php artisan l5-swagger:generate
或在 .env 文件中添加 L5_SWAGGER_GENERATE_ALWAYS=true
答案 3 :(得分:0)
在 Laravel 8 中。文档说它使用包自动发现功能。但事实并非如此。
您必须在提供者部分添加到您的 config/app.php:
L5Swagger\L5SwaggerServiceProvider::class,
然后,你必须运行
php artisan config:cache
只有这样,你才能运行
php artisan vendor:publish --provider 'L5Swagger\L5SwaggerServiceProvider'