[TIL] FastAPI

김연찬·2024년 10월 1일

FastAPI 공식 문서

FastAPI?

FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python의 API를 빌드하기 위한 웹 프레임워크이다.

  • 빠름: (Starlette과 Pydantic 덕분에) NodeJSGO와 대등할 정도로 매우 높은 성능. 사용 가능한 가장 빠른 파이썬 프레임 워크 중 하나.
  • 빠른 코드 작성: 약 200~300%까지 기능 개발 속도 증가
  • 적은 버그: 사람에 의한 에러 약 40% 감소
  • 직관적: 훌륭한 편집기 지원. 모든 곳에서 자동완성. 적은 디버깅 시간.
  • 쉬움: 쉽게 사용하고 배우도록 설계. 적은 문서 읽기 시간
  • 짧음: 코드 중복 최소화. 각 매개변수 선언의 여러 기능. 적은 버그
  • 견고함: 준비된 프로덕션 용 코드를 얻으십시오. 자동 대화형 문서와 함께
  • 표준 기반: API에 대한 (완전히 호환되는) 개방형 표준 기반

설치

pip install fastapi

프로덕션을 위해 Uvicorn 또는 Hypercorn과 같은 ASGI 서버 필요.

pip install "uvicorn[standard]"

예제

만들기

main.py

from typing import Union

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

실행하기

uvicorn main:app --reload

확인하기

http://127.0.0.1:8000/items/5?q=somequery
http://127.0.0.1:8000/docs (Swagger UI 제공)
http://127.0.0.1:8000/redoc (ReDoc 제공)

0개의 댓글