main.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import logging
  2. from fastapi import FastAPI
  3. from app.providers import (
  4. logging_provider,
  5. app_provider,
  6. handle_exception,
  7. pagination_provider,
  8. route_provider,
  9. auth_provider,
  10. )
  11. from config.config import settings
  12. import uvicorn
  13. def create_app() -> FastAPI:
  14. _app = FastAPI()
  15. register(_app, logging_provider)
  16. register(_app, app_provider)
  17. register(_app, handle_exception)
  18. register(_app, pagination_provider)
  19. register(_app, auth_provider)
  20. boot(_app, route_provider)
  21. return _app
  22. def register(_app, provider):
  23. provider.register(_app)
  24. logging.info(provider.__name__ + " registered")
  25. def boot(_app, provider):
  26. provider.boot(_app)
  27. logging.info(provider.__name__ + " booted")
  28. app = create_app()
  29. @app.get("/")
  30. async def root():
  31. return "Welcome to Open Assistant Api"
  32. if __name__ == "__main__":
  33. #app.run(host="0.0.0.0", port=settings.SERVER_PORT)
  34. uvicorn.run(
  35. app=app, #"main:app",
  36. host=settings.SERVER_HOST,
  37. port=settings.SERVER_PORT,
  38. workers=1,#settings.SERVER_WORKERS,
  39. reload=settings.ENV == "local",
  40. )