본문 바로가기

Framework, Library/Fast api

[Fast_api] fast_api란?

FastAPI

: API를 만들기 위한 파이썬 웹 프레임워크

 

주요 특징

  • 빠르다
  • 빠른 코드 작성
  • 적은 버그
  • 직관적
  • 쉬움
  • 짧음
  • 견고함
  • 표준 기반

 

설치

pip install fastapi
pip install "uvicorn[standard]"

 

Test_Code

# 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

위 코드의 uvicorn main:app --reload란?

  • main : main.py 파일
  • app : the object created inside of main.py with the line app = FastAPI()
  • --reload : 코드가 변경된 후 서버 재시작하기. 개발환경에서만 사용할 것!

 

- http://127.0.0.1:8000/

- http://127.0.0.1:8000/items/5?q=somequery

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

기본 / 에서 HTTP 요청 받는 경우, 출력되는 값

 

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

/items/{item_id}에서 http 요청 받는 로직

item_id는 int형 이어야 한다. 선택적인 q는 str형 이어야 한다.

 

- http://127.0.0.1:8000/docs

swagger 자동 제공

 

@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

- http://127.0.0.1:8000/items/{item_id}

 

put 방식, item_id, item_name을 입력해주는 느낌.


Fast API를 처음써봤는데, 벌써 편하다...
속이 뻥! Django보다 너무 가벼워서 공부하기 비교적 어려움 없을꺼같다.

'Framework, Library > Fast api' 카테고리의 다른 글

[Fast api] Query Parameters and String Validations  (0) 2023.04.27
[Fast_api] Request Body  (0) 2023.04.27
[Fast_api] 쿼리 매개변수  (0) 2023.04.27
[Fast_api] 경로 매개변수  (0) 2023.04.27
[Fast_api] start  (0) 2023.04.27