ํ๋ก์ ํธ ๊ด๋ จ์ง๋ฌธ
odmantic์ด pydatnic์ ์ฌ์ฉํ๋๋ฐ pydantic์ด v2๋ก ์
๋ฐ์ดํธ ๋๋ฉด์ ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ์์ด ์๊ธด ๋ฌธ์ ์
๋๋ค..์๋ง fastapi๋ pydantic์ ์ฌ์ฉํ๋๋ฐ v2๋ก ์ค์น๋ ๊ฒ ๊ฐ๋ค์odmantic ๊นํ ์ด์์์๋ ์ด๋ถ๋ถ์ ๋ํ ์ง์ ์ด ์๊ธดํ๋ฐ.. ๊ฐ์ฅ ๋น ๋ฅธ ํด๊ฒฐ์ฑ
์ pydantic์ ๋ค์ด๊ทธ๋ ์ด๋ ํ๋ ๋ฐฉ๋ฒ์
๋๋ค.pip install pydantic == 1.10.10 ์ด๋ ๊ฒ ๋ค์ด๊ทธ๋ ์ด๋ํด์ ์ฌ์ฉํ์๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค์๊ทธ์ธ์๋ fastapi๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์ค์นํ์
จ๋ค๋ฉด @app.on_envet๋ฅผ ์ง์ํ์ง ์์ต๋๋ค..from contextlib import asynccontextmanager @asynccontextmanager async def lifespan(app: FastAPI): logger.info("์ฑ์ด ์์๋ฉ๋๋ค.") mongoDB.connect() await mongoDB.check_connection() yield logger.info("์ฑ์ด ์ข
๋ฃ๋ฉ๋๋ค.") await mongoDB.close() app = FastAPI() app.router.lifespan_context = lifespan์ด๋ ๊ฒ ์์ ํ์๋ฉด ์ฑ์ด ์์๋ ๋์ ์ข
๋ฃ๋ ๋ ๋ชฝ๊ณ DB์ ์ฐ๊ฒฐ ๋ฐ ํด์ ๋ฅผ ์ํํ ์ ์์๊บผ์์..