from flask import url_for, Blueprint, render_template class Apidoc(Blueprint): """ Allow to know if the blueprint has already been registered until https://github.com/mitsuhiko/flask/pull/1301 is merged """ def __init__(self, *args, **kwargs): self.registered = False super(Apidoc, self).__init__(*args, **kwargs) def register(self, *args, **kwargs): super(Apidoc, self).register(*args, **kwargs) self.registered = True apidoc = Apidoc( "restx_doc", __name__, template_folder="templates", static_folder="static", static_url_path="/swaggerui", ) @apidoc.add_app_template_global def swagger_static(filename): return url_for("restx_doc.static", filename=filename) def ui_for(api): """Render a SwaggerUI for a given API""" return render_template("swagger-ui.html", title=api.title, specs_url=api.specs_url)