docs: def add_swagger(app, json_route, html_route, **kwargs):
      """
      add a swagger html page, and a swagger.json generated
      from the routes added to the app.
      """
      spec = getattr(app, SWAGGER_ATTR_NAME)
      if spec:
          spec = spec.swagger_definition(**kwargs)
      else:
          spec = {}
      encoded_spec = json.dumps(spec).encode("UTF-8")
  
      @app.route(json_route)
      def swagger():
          return Response(
              encoded_spec,
              # we allow CORS, so this can be requested at swagger.io
              headers={"Access-Control-Allow-Origin": "*"},
              content_type="application/json",
          )
  
      # add the statics
      static_root = get_swagger_static_root()
      swagger_body = generate_swagger_html(
          STATIC_PATH, json_route
      ).encode("utf-8")
  
      @app.route(html_route)
      def swagger_ui():
          return Response(swagger_body, content_type="text/html")
  
      # the blueprint work is the easiest way to integrate a static
      # directory into flask.
      blueprint = Blueprint('swagger', __name__, static_url_path=STATIC_PATH,
                            static_folder=static_root)
      app.register_blueprint(blueprint)