FastAPI 다뤄보기

lionloopy·2024년 11월 29일

오늘의 공부

목록 보기
8/22
post-thumbnail

FastAPI 설치

pip install "fastapi[all]"

FastAPI 사용해보기

  1. main.py orr app.py 생성하기
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}
  1. 서버 실행시키기
  • 나의 경우에는 ./start_server.sh 를 실행시키게끔 했고, 그 안에 아래 구문을 넣었다.
uvicorn src.app:app --host 0.0.0.0 --port 8000 --reload
  • src.app: src경로에 있는 app.py 파일 (파이썬 모듈)
  • :app: app = FastAPI
  • --reload: 코드가 변경 된 후 서버 재시작하기 (개발환경에서만 사용)
  1. 벌써 api가 만들어진 상태! 경로/및 /items/{item_id}에서 HTTP 요청 받기
  2. swagger가 자동 생성됨 -> /docs, /redoc
  3. 더 많은 api를 추가해서 실행시킬 수 있음

관련 용어

  • CGI: 웹 애플리케이션 서버에 동적인 요청이 들어왔을 때 그것에 대한 요청을 처리하고 응답해줘야 함. 이 때마다 서버마다 언어마다 형태가 다르면 곤란해지기 때문에 공통 규약(인터페이스)가 필요함. -> 이 인터페이스가 CGI이다. (common gateway interface)
  • WSGI: web server gateway interface로, CGI의 단점을 보완한 방법이다.
  • ASGI: 비동기 처리에 단점이 있는 WSGI를 개선하기 위해 만들어졌다. uvicorn은 바로 이 ASGI에서 활용된다.
  • Uvicorn: ASGI이며, 동기 & 비동기적으로 들어오는 요청에 대해 빠르게 처리할 수 있는 능력을 가졌다.

참고

https://fastapi.tiangolo.com/ko/#api
https://lsjsj92.tistory.com/648

profile
기록은 담백하게, 성장은 빠르게! 🐘

0개의 댓글