Пример #1
0
def get_swagger_blueprint(url_prefix=""):
    swagger = Blueprint(
        "eve_swagger", __name__, template_folder="templates", url_prefix=url_prefix
    )
    swagger.additional_documentation = OrderedDict()

    @swagger.route("/api-docs")
    @_modify_response
    def index_json():
        return jsonify(_compile_docs(swagger))

    @swagger.route("/docs")
    @_modify_response
    def index():
        return render_template("index.html", spec_url="/api-docs")

    return swagger
Пример #2
0
    parameters,
    responses,
    request_bodies,
    security_schemes,
    security,
    tags,
    external_docs,
    headers,
    links,
    callbacks,
    examples,
)
from .paths import paths

swagger = Blueprint("eve_swagger", __name__, template_folder="templates")
swagger.additional_documentation = OrderedDict()


def _compile_docs():
    def node(parent, key, value):
        if value:
            parent[key] = value

    root = OrderedDict()
    root["openapi"] = "3.0.0"
    node(root, "info", info())
    node(root, "servers", servers())
    node(root, "paths", paths())

    components = OrderedDict()
    node(components, "schemas", definitions())
Пример #3
0
import re
from collections import Mapping
from flask import Blueprint, jsonify, make_response, request, \
    current_app as app
from functools import wraps

from eve_swagger import OrderedDict
from .definitions import definitions
from .objects import info, host, base_path, schemes, consumes, produces, \
    parameters, responses, security_definitions, security, tags, \
    external_docs
from .paths import paths


swagger = Blueprint('eve_swagger', __name__)
swagger.additional_documentation = OrderedDict()


def add_documentation(doc):
    _nested_update(swagger.additional_documentation, doc)


def _modify_response(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        if request.method == 'OPTIONS':
            resp = app.make_default_options_response()
        else:
            resp = make_response(f(*args, **kwargs))

        # CORS