def initialize(
    rootName,
    refferenceModel,
    staticPackage = 'static',
    viewsPackage = 'views'
) :

    app = Flask(
        rootName,
        static_folder = staticPackage,
        template_folder = viewsPackage
    )
    api = Api(app)
    api.app = app
    api.app.api = api

    api.cors = CORS(app)
    api.cors.api = api

    addGlobalsTo(api)
    OpenApiManager.newDocumentation(api, app)
    SqlAlchemyProxy.addResource(api, app, baseModel=refferenceModel, echo=False)
    SchedulerManager.addResource(api, app)
    SessionManager.addResource(api, app)
    ApiKeyManager.addResource(api, app)
    SecurityManager.addResource(api, app)
    addFlaskApiResources(*[api, app, *[getResourceList(api, resourceType) for resourceType in FlaskManager.KW_RESOURCE_LIST]])
    SessionManager.onHttpRequestCompletion(api, app)
    ApiKeyManager.onHttpRequestCompletion(api, app)
    SecurityManager.onHttpRequestCompletion(api, app)
    SchedulerManager.onHttpRequestCompletion(api, app)
    SqlAlchemyProxy.onHttpRequestCompletion(api, app)
    return app
Пример #2
0
def create_app(config='config.ProductionConfig'):
    app = Flask(__name__)
    app.config.from_object(config)
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    from db.setup import db
    db.init_app(app)

    _ = (User, Post, Token)

    api = Api(app)
    register_routes(api)

    app.register_blueprint(error_handlers.blueprint)

    api.app = app
    api.authorizations = {
        'apiKey': {
            'type': 'apiKey',
            'in': 'header',
            'name': 'X-API-KEY'
        }
    }

    return app
Пример #3
0
def initialize(
    rootName,
    refferenceModel,
):

    app = Flask(rootName)
    api = Api(app)
    addGlobalsTo(api)
    SchedulerManager.addScheduler(api, app)
    securityKey = api.globals.getApiSetting('api.security.secret')
    if SettingHelper.LOCAL_ENVIRONMENT == SettingHelper.getActiveEnvironment():
        log.setting(initialize, f'JWT secret: {securityKey}')
    jwt = Security.getJwtMannager(app, securityKey)

    args = [api, app, jwt]
    for resourceType in FlaskManager.KW_RESOURCE_LIST:
        args.append(getResourceList(api, resourceType))
    args.append(refferenceModel)
    addFlaskApiResources(*args)
    api.app = app
    return api, app, jwt