Почему я получил эту ошибку? Не могу прочитать чванство JSON - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть 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;
    }
}
...