Estoy tratando de implementar el servidor swagger del matraz generado desde swaggerhub, a continuación se muestra la estructura de mi carpeta y el archivo de proceso que uso. ¿Alguien sabe cómo implementar este servidor de matraz swagger en heroku?
project │ swagger-codegen │ └───swagger_server │ │___controllers | |___models │ │___swagger | |___test │ __init__.py | __main__.py │ encoder.py | util.py | │ |_ .dockerignore |_ .gitignore |_ dockerfile |_ gitpush.sh |_ Procfile |_ requirements.txt |_ runtime.txt |_ setup.pycontenido en Procfile:
web: gunicorn app:swagger_servercontenido en runtime.txt:
python-3.7.8contenido en Requirments.txt:
connexion == 2.6.0 python_dateutil == 2.6.0 setuptools >= 21.0.0 gunicorn==20.0.0contenido en el archivo principal .py:
#!/usr/bin/env python3 import connexion import os from swagger_server import encoder def main(): app = connexion.App(__name__, specification_dir='./swagger/') app.app.json_encoder = encoder.JSONEncoder app.add_api('swagger.yaml', arguments={'title': 'end point'}, pythonic_params=True) port = int(os.environ.get("PORT", 5000)) app.run(host = '0.0.0.0', port=port ) if __name__ == '__main__': main()Encontré la solución yo mismo, que también puede usar para implementar en Appengine, cambie el contenido principal del archivo de la siguiente manera:
#!/usr/bin/env python3 import connexion from swagger_server import encoder app = connexion.App(__name__, specification_dir='./swagger/') app.app.json_encoder = encoder.JSONEncoder app.add_api('swagger.yaml', arguments={'title': 'Docuware end point'}, pythonic_params=True) if __name__ == '__main__': app.run()contenido en el perfil:
web: gunicorn swagger_server.__main__:appcontenido en requisitos.txt:
connexion == 2.6.0 python_dateutil == 2.6.0 setuptools >= 21.0.0 gunicornesta solución funciona para implementar en heroku, eliminé la función main() y escribí contenido sin un enfoque de función.