in src/main.py [0:0]
def _init_swagger(self, app: 'Bottle', prefix: str, stage: str) -> None:
"""
:param app:
:param prefix: prefix for swagger UI
:param stage: stage where all endpoints are, the same as API gw
:return:
"""
from swagger_ui import api_doc
from services.openapi_spec_generator import OpenApiGenerator
from lambdas.modular_api_handler.handler import HANDLER
# from validators import registry
url = f'http://{self._host}:{self._port}'
urls = self._resolve_urls()
urls.add(url)
generator = OpenApiGenerator(
title='Modular service API',
description='Modular service rest API',
url=list(urls),
stages=stage,
version=__version__,
endpoints=HANDLER.iter_endpoint()
)
if not prefix.startswith('/'):
prefix = f'/{prefix}'
api_doc(
app,
config=generator.generate(),
url_prefix=prefix,
title='Modular service'
)
_LOG.info(f'Serving swagger on {url + prefix}')