여름에 스프링부트로 백엔드 공부를 시작했다. 코드를 따라치면서 용어는 익숙해졌지만 작동 구조가 이해되지 않아서 공부를 멈췄었는데 이번에 FastAPI로 CRUD를 해보면서 백엔드 감 잡기 프로젝트 일명 감따먹기... 아무튼시작
왜 하필 FastAPI를 선택했는가?
파이썬을 이용한 대중적인 프레임워크로 Django, Flask가 있지만 나는 비교적 최신 기술인 FastAPI를 선택했다. 개발된지 얼마 안 된 프레임워크라서 다른 두 프레임워크에 비해 인터넷 상에 교육자료가 적을 수 있다는 단점은 있었다. 하지만 나의 목표는 프레임워크 하나를 잡고 깊게 파는 것이 아니라 CRUD를 만들 때 서버와 클라이언트 간의 정보가 돌아다니고 프로그램이 작동하는 과정, 백엔드라는 게 무슨 일을 하는 건지 감을 잡기 위함이었기 때문에 쉽고 성능도 좋다는 FastAPI를 선택하게 되었다. 그리고 무엇보다... 한글 버전 공식문서가 있다.
<점프 투 FastAPI>을 읽고 공부한 내용을 정리한 글입니다.
- FastAPI
- Python
- Svelte
- 부트스트랩
FastAPI란?
파이썬(3.6 이상)으로 API를 빌드하기 위한 웹 프레임워크이다. 빠르고 쉽다.
FastAPI의 특징
- API 문서 자동 생성(Swagger, Redoc 등)
- Pydantic을 사용한 Validation 검사
- OpenAPI에 정의된 모든 보안 요소를 포함(HTTP, Starlette의 보안 기능 등)
- 의존성 주입으로 데이터베이스 연결, path operation parameters에 대한 자동 validation 검사 지원
- 비동기 방식
FastAPI 설치
FastAPI 설치 전에 파이썬을 설치해야한다. myapi라는 가상환경을 만들어서 FastAPI를 설치했다. 가상환경 없이 바로 진행해도 된다. 터미널을 켜고 프로젝트를 진행할 디렉터리에서 아래 코드를 입력하면 설치된다.
(myapi)~~$ pip install fastapi
(myapi)~~$ pip install "uvicorn[standard]"
uvicorn은 파이썬 웹서버를 실행하기 위한 ASGI 서버이다.
FastAPI 서버 실행
uvicorn main:app --reload
간단한 API
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def hello():
return {"message": "Hello World"}
'Tech > FastAPI' 카테고리의 다른 글
alembic 에러 (0) | 2024.01.16 |
---|---|
FastAPI Depends 클래스 - Dependency Injection 의존성 주입 (1) | 2024.01.12 |
FastAPI - app.get과 router.get 차이 (FastAPI와 APIRouter) (0) | 2024.01.09 |