FastAPI with Clean-Architecture
클린 아키텍처 구조를 적용한 FastAPI.
Clean Architecture 구조 및 역할
흐름
interfaces -> application -> domain -> infrastructure
설명
- 클린 아키텍처의 핵심은 관심사의 분리로 유지보수와 확장성을 높일 수 있다.
| Layer | Description |
|---|---|
| Interface | 사용자/외부 입력을 Application의 유즈케이스에 연결하는 레이어 |
| Application | 사용자 시나리오(usecase) 및 비즈니스 로직을 실행하는 레이어 |
| Domain | 핵심 비즈니스 규칙 및 엔티티를 정의하는 레이어 |
| Infrastructure | 외부 시스템(DB, API 등)과의 연동 및 구현을 담당하는 레이어 |
예시 by github copilot
- Interface: 사용자가 회원가입 폼을 제출하면, API 엔드포인트에서 입력 데이터를 받아 Application 레이어로 전달합니다.
- Application: 회원가입 유즈케이스를 실행하며, 입력값 검증, 비밀번호 암호화, 도메인 객체 생성, 트랜잭션 관리 등을 처리합니다.
- Domain:
User엔티티와 회원가입 관련 비즈니스 규칙(예: 이메일 중복 체크, 비밀번호 정책 등)을 정의합니다. - Infrastructure: DB에 사용자 정보를 저장하고, 이메일 인증을 위해 외부 메일 서비스와 연동합니다.
기본 사용법
- fastapi-setup 으로 프로젝트 초기화할 수 있습니다.
fastapi-setup
- --help 를 통해 명령어를 확인할 수 있습니다.
python3 manage.py --help
커스텀 명령어 추가 방법
{PROJECT_DIR}/managements/commands/아래 Command 를 상속받아 명령어를 추가할 수 있습니다.
python3 manage.py {command_name}
Metadata
Release files for fastapi-clean-archi 0.7.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fastapi_clean_archi-0.7.8.tar.gz | 13.2 kB | Without provenance | Details for fastapi_clean_archi-0.7.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fastapi_clean_archi-0.7.8-py3-none-any.whl | Python 3 | none | any | Details for fastapi_clean_archi-0.7.8-py3-none-any.whl |
Total release size: 33.5 kB
Release files / fastapi_clean_archi-0.7.8.tar.gz
| Download URL | fastapi_clean_archi-0.7.8.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eae4fc8227d30ab464b77661affc6d93f477700d45f452ab595d147338cc667b
|
|
BLAKE2b-256 checksum How to use checksums |
c1b419df0535f165bc2b4f4a777d9eb8208937fa44289dbea7ca132486ff2eb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / fastapi_clean_archi-0.7.8-py3-none-any.whl
| Download URL | fastapi_clean_archi-0.7.8-py3-none-any.whl |
|---|---|
| Size | 20.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54a942e00242b26dc15f3aae494c7514bb90e32222d47cbb20b641d0f95d0b66
|
|
BLAKE2b-256 checksum How to use checksums |
4c9cc47673f71f91fad513b7ef56a94fc273a8b43c4278648970c5352abc8f7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Security for fastapi-clean-archi 0.7.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.