У меня есть API, использующий apache в localhost с swagger-ui для создания документации и хорошо работающий. Я недавно загрузил свое приложение на веб-сервер nginx, и у меня появилась эта ошибка: Не могу прочитать свагер JSON из https://myserver/swagger/docs/api. Моя конфигурация сваггера находится в https://github.com/alt3/cakephp-swagger
Это мой swagger.php
<?php
use Cake\Core\Configure;
return [
'Swagger' => [
'ui' => [
'title' => 'Swagger',
'validator' => true,
'api_selector' => true,
'route' => '/swagger/',
'schemes' => ['http', 'https']
],
'docs' => [
'crawl' => Configure::read('debug'),
'route' => '/swagger/docs/',
'cors' => [
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'GET, POST',
'Access-Control-Allow-Headers' => 'X-Requested-With'
]
],
'library' => [
'api' => [
'include' => ROOT . DS . 'src',
'exclude' => [
'/Editor/'
]
],
'editor' => [
'include' => [
ROOT . DS . 'src' . DS . 'Controller' . DS . 'AppController.php',
ROOT . DS . 'src' . DS . 'Model',
]
]
]
]
];*
Мой appController.php
<?php
/**
@SWG\Swagger(
@SWG\Info(
title="Api Rest",
description="Teste",
termsOfService="http://swagger.io/terms/",
version="1.0.0"
)
)
*/
И Моя конфигурация Nginx
server {
listen 80;
server_name myServer;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl ;
server_name myServer;
root /nginx/myServer/webroot;
index index.php index.html;
charset utf-8;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS, HEAD, PATCH';
add_header 'Access-Control-Allow-Headers' '*';
location / {
# rewrite ^/(.*)$ /webroot/$1 break;
try_files $uri $uri/ /index.php?q=$uri&$args;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
#
# Om nom nom cookies
#
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS, HEAD, PATCH';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' '*';
#
# Tell client that this pre-flight info is valid for 20 days
#
add_header 'Access-Control-Max-Age' 1728000;
#add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 200;
}
#if ($request_method = 'POST') {
# add_header 'Access-Control-Allow-Origin' '*';
# add_header 'Access-Control-Allow-Credentials' 'true';
# add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS, HEAD, PATCH';
# add_header 'Access-Control-Allow-Headers' '*';
#}
#if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS, HEAD, PATCH';
add_header 'Access-Control-Allow-Headers' '*';
#}
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
}
location ~* \.php$ {
fastcgi_pass example:8080;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}