👩‍💻 Develope/Web

[FastAPI] FastAPI 알아보기

heywantodo 2023. 12. 12. 16:17
728x90
반응형

[FastAPI] FastAPI 알아보기

 

FastAPI?

파이썬 3.6부터 제공되는 비교적 최근에 등장한 웹 프레임워크

 

기존에 잘 알려져있는 파이썬 웹 프레임워크로는 비교적 가벼운 웹 개발이라면 Flask를 사용했고,

조금 더 볼륨이 있는 프로젝트라면 Django를 사용했다.

 

이 가운데 비교적 조작법은 단순하면서 성능적으로 우세함을 보장한다는 FastAPI가 등장했다. 

FastAPI는 현대적이고 빠르며, 파이썬 표준 타입에(Type Annotation) 기초한 웹 프레임워크다.

 

FastAPI의 특징은 다음과 같다. 

  • 자동 스웨거 (Swagger) 지원 ==> API 문서를 자동으로 생성
  • 풍부한 자유도
  • 내부에서 Starlette과 Pydantic을 사용 
  • 큰 커뮤니티, 아직은 작은 생태계 

 

FastAPI는 3년만에 django와 flask를 따라잡았다.

 

FastAPI 사용하기

FastAPI를 사용하기위해 fastapi와 uvicorn을 설치해준다.

(ubuntu 22.04 / miniconda 환경에서 프로젝트 세팅)

conda create -n web python=3.10
pip install fastapi uvicorn
🤔 Uvicorn?
FastAPI는 uvicorn ASGI Server와 함께 사용한다.
ASGI는 Asynchronous Server Gateway Interface의 약자로 비동기 web server를 의미한다.

비동기 방식은 DB나 API 연동 과정에서 발생하는 대기 시간을 낭비하지 않고,
CPU가 다른 작업을 할 수 있도록 하는 방식이다.

 

FastAPI 설치가 완료됐으면 sample 코드를 작성해준다.

main.py

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def index():
    return {"index":"Hello FastAPI"}

@app.get("/math/sum")
def math_sum(num1: int, num2: int):
    return {"result":num1+num2}

 

Sample 코드를 실행할 때 필요한게 uvicorn이다. 다음 명령어를 실행해준다.

uvicorn main:app --reload

 

실행 후 localhost:8000 으로 접속하면 index를 확인할 수 있고

localhost:8000/docs로 가서 try it out을 클릭하면 api 호출이 가능하다.

원하는 파라미터값을 넣고 호출을 하면

아래와 같이 response를 확인 할 수 있다. 

728x90
반응형