Closed plateena closed 1 year ago
Can you share the full stack trace of the error? Can you also check that a openapi.yaml
file really exists in that location by running file_exists(resource_path('docs/openapi.yaml'))
?
true on top of the screen are the dump file_exist check for both openapi.json and openapi.yml file. So both file are exists. When I change the setting to json it work. But not for yml file.
Here are the error log:
[2022-04-24 13:00:48] local.ERROR: NextApps\SwaggerUi\Http\Controllers\OpenApiJsonController::getJson(): Return value must be of type array, null returned {"exception":"[object] (TypeError(code: 0): NextApps\SwaggerUi\Http\Controllers\OpenApiJsonController::getJson(): Return value must be of type array, null returned at /app/vendor/nextapps/laravel-swagger-ui/src/Http/Controllers/OpenApiJsonController.php:34) [stacktrace]
This the working json file:
This json file are converted of yaml file.
I've set my yaml file at config/swagger-ui and worked just fine. Could you fix it?
Don't work for me. If I set openapi.yaml
I have the following error Internal Server Error /swagger/openapi.json
.
Yes, the error message say .json
even if I specify .yaml
in configuration. With modify_file => false
.
Any idea?
@Brouilles I was facing the same Internal Server Error /swagger/openapi.json
, the yaml PHP extension was missing in my server, make sure to enable it and it will work, btw the message is misleading.
@Brouilles I was facing the same
Internal Server Error /swagger/openapi.json
, the yaml PHP extension was missing in my server, make sure to enable it and it will work, btw the message is misleading.
Yes, we need php-yaml extension to get rid of misleading message. Refer here for steps (Windows XAMPP user).
A bit about my findings:
File: vendor\nextapps\laravel-swagger-ui\src\Http\Controllers\OpenApiJsonController.php
protected function getJson() : array
{
$path = config('swagger-ui.file');
$content = file_get_contents($path);
if (Str::endsWith($path, '.yaml')) {
if (! extension_loaded('yaml')) {
throw new RuntimeException('OpenAPI YAML file can not be parsed if the YAML extension is not loaded');
}
return yaml_parse($content);
}
return json_decode($content, true);
}
Hi, I want to use yaml file instead of json file. And I don't know how to set it.
I already tried to change
'file' => resource_path('docs/openapi.yaml'),
in the config file.But got the error
Fetch error Internal Server Error /docs/openapi.json
In last project I use npm package to transform yaml file to json file.
Please help me.