Celery와 FastAPI - 5
·
프로그래밍 언어/파이썬
Auto-reload 설정 live code re-loading은 개발자에게 코드 변경에 대한 빠른 피드백을 제공하는 간단하지만 효과적인 방법입니다. Uvicorn은 기본적으로 이 기능을 제공하지만, Celery는 그렇지 않습니다. 따라서 작업 코드에 변경이 있을 때마다 Celery 워커를 수동으로 재시작해야 합니다. 이는 개발의 비효율성입니다. 코드베이스에 변경이 있을 때 Celery 워커가 자동으로 재시작되도록 Celery 워커의 Auto-reload 문제를 해결하는 방법을 확인해 봅니다. WatchFiles Uvicorn을 --reload 플래그와 함께 실행하면, watchfiles을 이용하여 파일 감시 및 코드 re-load를 위한 도구로 사용됩니다. Celery 워커에도 watchfiles를 사..
FastAPI를 이용한 TDD 개발 - 6
·
프로그래밍 언어/파이썬
TDD 를 이용하여서 3개의 새로운 endpoint를 RESTful 개발로 진행하겠습니다. /summaries GET READ get all summaries /summaries/:id GET READ get a single summary /summaries POST CREATE add a summary 각각의 엔드포인트에서 1. 테스트를 작성합니다. 2. 테스트 코드가 실패하는 것을 확인합니다.(레드) 3. 테스트 코드가 통과 되도록 코드를 작성합니다(그린) 4. 리팩토링합니다. Post Route app 디렉토리 아래 api 디렉토리 아래 summaries.py 모듈을 작성하겠습니다. # project/app/api/summaries.py from fastapi import APIRouter, HTT..
FastAPI를 이용한 TDD 개발 - 5
·
프로그래밍 언어/파이썬
App Structure 테스트가 잘 수행 되었면 앱을 리팩터링하고 FastAPI의 APIRouter, 새로운 데이터베이스 초기화 함수 및 pydantic 모델을 추가해 보겠습니다. API라우터 먼저 "app" 폴더에 "api"라는 새 폴더를 추가합니다. 새로 생성된 폴더에 __init__.py 파일을 추가합니다 . 이제 경로를 project/app/api/ping.py/ping 라는 새 파일로 이동할 수 있습니다 . # project/app/api/ping.py from fastapi import APIRouter, Depends from app.config import get_settings, Settings router = APIRouter() @router.get("/ping") async def..