app.py 944 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import logging
  2. from flask import Flask
  3. from lakesuperior.endpoints.admin import admin
  4. from lakesuperior.endpoints.ldp import ldp
  5. from lakesuperior.endpoints.main import main
  6. from lakesuperior.endpoints.query import query
  7. logger = logging.getLogger(__name__)
  8. def create_app(app_conf):
  9. '''
  10. App factory.
  11. Create a Flask app.
  12. @param app_conf (dict) Configuration parsed from `application.yml` file.
  13. '''
  14. app = Flask(__name__)
  15. app.config.update(app_conf)
  16. logger.info('Starting LAKEsuperior HTTP server.')
  17. app.register_blueprint(main)
  18. app.register_blueprint(ldp, url_prefix='/ldp', url_defaults={
  19. 'url_prefix': 'ldp'
  20. })
  21. # Legacy endpoint. @TODO Deprecate.
  22. app.register_blueprint(ldp, url_prefix='/rest', url_defaults={
  23. 'url_prefix': 'rest'
  24. })
  25. app.register_blueprint(query, url_prefix='/query')
  26. app.register_blueprint(admin, url_prefix='/admin')
  27. return app