Tech/FastAPI

FastAPI 시작하기 - FastAPI 설치 및 실행

@~@ 2024. 1. 9. 17:13

여름에 스프링부트로 백엔드 공부를 시작했다. 코드를 따라치면서 용어는 익숙해졌지만 작동 구조가 이해되지 않아서 공부를 멈췄었는데 이번에 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"}