хостинг flask_restplus Swagger UI на Herokuapp говорит: «Определение API не предоставлено». - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь разместить Swagger UI Flask Restplus на сервере Heroku. Он успешно строится и при проверке в логах героку даже там пишет "Сборка прошла успешно".

Но проблема в том, что когда я проверяю фактический хостинг, на странице появляется только сообщение с сообщением
Не предоставлено определение API .

enter image description here Кстати, пользовательский интерфейс swagger успешно загружается в браузер при локальном запуске.

Ниже приведен пример фрагмента кода для swagger-ui

from flask import Flask
from flask_restplus import Resource, Api
import os

app = Flask(__name__)
api = Api(app)

@api.route('/hello')
class HelloWorld(Resource):
    def get(self):
        return {'hello': 'world'}

if __name__ == '__main__':
    port = int(os.environ.get("PORT", 5000)) 
    app.run(host="0.0.0.0", port=port, debug=True)

Так что я здесь не так делаю? Есть ли способ, с помощью которого вы можете разместить простой минимальный интерфейс flask_restplus swagger-UI на heroku ? Спасибо за любую помощь, спасибо.

РЕДАКТИРОВАТЬ

Ниже приводится содержание чванства. json

{
    "swagger": "2.0",
    "basePath": "/",
    "paths": {
        "/hello": {
            "get": {
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                },
                "operationId": "get_hello_world",
                "tags": [
                    "default"
                ]
            }
        }
    },
    "info": {
        "title": "API",
        "version": "1.0"
    },
    "produces": [
        "application/json"
    ],
    "consumes": [
        "application/json"
    ],
    "tags": [
        {
            "name": "default",
            "description": "Default namespace"
        }
    ],
    "responses": {
        "ParseError": {
            "description": "When a mask can't be parsed"
        },
        "MaskError": {
            "description": "When any error occurs on mask"
        }
    }
}

Также если это поможет, это то, что внутри Procfile

web: python app.py

1 Ответ

0 голосов
/ 04 марта 2020

Публикация того, что сработало для меня, на случай, если у кого-то возникнет такая же проблема в будущем.

Я изменил Procfile с

web: python app.py

на

web: gunicorn app:app

и затем первая страница сваггер-интерфейса также начала появляться на героку. Ранее конечные точки были еще доступны, но первая страница ie. страница с пользовательским интерфейсом не появилась. Но, сделав это изменение, оно заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...