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
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
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