Python/FastAPI

[FastAPI] (6) 보일러 플레이트 (Boiler Plate)

yubi5050 2022. 10. 27. 02:28

BoilerPlate란?

BoilerPlate Code란 재 사용할 수 있는 뼈대 코드로, 보일러 플레이트를 작성해 놓고, 프로젝트 신규 생성 시마다 적용하여 사용 가능하다. 

 

폴더 구조

FastAPI BoilerPlate


┌─FastAPI BoilerPlate
│  └─deployments
│      │
│      └─ Dockerfile
├─src
│  ├─app.py : 최초 main 실행 함수
│  │
│  ├─dtos/ : Input, Output 전달 Object
│  │
│  ├─db/ : DB Connect and CRUD
│  │
│  ├─models/ : DB models
│  │
│  ├─router/ : API Router
│  │
│  ├─services/ : 비즈니스 로직 서비스
│  │
│  └─test/ : 모듈별 Test 코드 폴더
│
└─README.md

 

폴더 구조 설명

  • Dockerfile : 도커파일 Build 이미지
  • app.py : 최초 main 실행 함수
  • dtos/ : Input, Output 전달 Object - app1_dto.py, app2_dtop.py
  • db/ : DB Connect and CRUD - mongo.py, postgresql.py 등 작성 
  • models/ : DB models - users.py, posts.py
  • router/ : API Router - app1_router.py, app2_router.py 등 작성
  • services/ : 비즈니스 로직 서비스 - app1_service.py, app2_service.py 등 각 router에 연결 작성
  • test/ : 모듈별 Test 코드 폴더

 

(추가) ORM 기반 보일러 플레이트

만약 ORM 기반으로 프로젝트를 셋팅 하고 싶다면 다음 링크를 참조

FastAPI + SqlAlchemy + alembic (migration 관리 라이브러리)

https://github.com/teamhide/fastapi-boilerplate

 

GitHub - teamhide/fastapi-boilerplate: FastAPI boilerplate for real world production

FastAPI boilerplate for real world production. Contribute to teamhide/fastapi-boilerplate development by creating an account on GitHub.

github.com

 

참고 문헌

KeyHyuk Kim님 링크

 

FastAPI 보일러플레이트 소개

뉴럴웍스에선 MLOps 를 위한 API 서비스들을 FastAPI 로 개발하고 있습니다.

medium.com