main.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. )