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