본 포스팅은 인프런에서 제공하는 '실전! FastAPI 입문' 강의를 수강후에 정리 및 복습을 위해 작성하는 글입니다.
프로젝트 구조
1. api/ 디렉토리
api/ 디렉토리는 FastAPI 애플리케이션의 주요 API 엔드포인트를 정의하는 파일을 포함
이 디렉토리에서 HTTP 요청을 처리하고, 비즈니스 로직을 처리한 후 응답을 반환
- todo.py: 할 일 목록(Todo) 관련 API 엔드포인트를 처리하는 파일
- user.py: 사용자 관련 API 엔드포인트를 처리하는 파일
2. database/ 디렉토리
database/ 디렉토리는 데이터베이스 연결 및 ORM(객체 관계 매핑) 설정을 처리하는 파일들로 구성되어 있음
이 디렉토리의 파일들은 데이터베이스와의 상호작용을 정의, CRUD 작업을 수행
- connection.py: 데이터베이스 연결 설정을 다루는 파일
- orm.py: ORM을 통해 데이터베이스와 객체 간의 매핑을 정의하는 파일
- repository.py: 데이터베이스에서 데이터를 가져오는 쿼리 로직을 포함한 파일
3. schema/ 디렉토리
schema/ 디렉토리는 데이터 모델을 정의하는 파일들로 구성되어 있음
FastAPI에서는 Pydantic을 사용하여 데이터의 유효성 검사를 하고, API 요청 및 응답을 관리
- request.py: API 요청에서 사용할 Pydantic 모델을 정의하는 파일
- response.py: API 응답에서 사용할 Pydantic 모델을 정의하는 파일
4. service/ 디렉토리
service/ 디렉토리는 비즈니스 로직을 포함하는 파일들이 있음
이곳에서는 API에서 호출된 후 처리할 비즈니스 로직을 다룸
- user.py: 사용자 관련 비즈니스 로직을 처리하는 파일
5. tests/ 디렉토리
tests/ 디렉토리는 프로젝트의 테스트 코드가 위치하는 곳.
터미널에서 pytest 또는 pytest + 테스트할 api명으로 단위 테스트 가능
- __init__.py: pytest가 테스트 경로를 인식하게 하기 위한 init 파일
- conftest.py: pytest에서 사용하는 설정 파일로, 테스트 환경을 구성하거나 공통된 테스트 픽스처를 정의하는 파일
- test_main.py: 애플리케이션의 주요 기능에 대한 테스트 파일
- test_todos_api.py: Todo 관련 API 엔드포인트에 대한 테스트 파일
- test_users_api.py: 사용자 관련 API 엔드포인트에 대한 테스트 파일
6. 기타 주요 파일들
- cache.py: 캐시 관련 기능을 처리하는 파일
- security.py: 보안 관련 기능을 처리하는 파일
- main.py: FastAPI 애플리케이션의 실행 및 기본 설정을 포함한 파일
'공부 > FastAPI' 카테고리의 다른 글
[FastAPI] 사용된 패키지 목록 (1) | 2025.01.16 |
---|---|
[FastAPI] FastAPI란? (1) | 2025.01.16 |
[FastAPI] API Status Code 정리 (0) | 2024.12.26 |