fastAPI의 공식문서는 아래와 같습니다.
https://fastapi.tiangolo.com/ko/
fastAPI를 사용하려면 가상환경이 설치되어있어야 합니다.
파이참을 사용하시는 분은 파이썬프로젝트를 생성하면 가상환경이 자동으로 만들어지며,
VSCODE를 사용하시는 분은 venv가상환경을 설치해야합니다.
가상환경이 만들어졌다면 터미널에 아래명령어를 입력하여 fastAPI를 설치합니다.
pip install fastapi
두번째로 uvicorn을 설치해야합니다. 아래명령어를 터미널에 입력합니다.
pip install "uvicorn[standard]"
참고) uvicorn이란?
Uvicorn은 ASGI(Asynchronous Server Gateway Interface) 서버 중 하나입니다.
Uvicorn은 비동기 처리를 지원하여, 높은 성능을 발휘할 수 있습니다.
예제)
main.py를 만듭니다.
아래 코드를 입력합니다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
터미널에 아래명령어를 입력하여 서버를 실행합니다.
uvicorn main:app --reload
fastAPI의 기본 포트번호는 8000입니다.
따라서 127.0.0.1:8000을 주소창에 입력하면 아래와 같이 나타나는것을 볼 수 있습니다.
하지만 위와 같은 방식은 터미널에 명령어를 입력해야만 실행이 되고 run 버튼으로는 실행이 되지 않는 단점이 있습니다.
이를 보완하기 위해 __name__을 추가합니다.
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
if __name__ == "__main__":
uvicorn.run("main:app", port=8000,reload=True)
이제 run버튼을 클릭해서도 실행할 수 있습니다. 물론 결과는 동일합니다.
만약 컨트롤러와 분리하고 싶다면 아래처럼 코드를 입력하시면 됩니다
main.py
import uvicorn
if __name__ == "__main__":
uvicorn.run("controller:app", port=8000,reload=True)
controller.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
동일한 결과가 출력됩니다.
단지 터미널 명령어가 아닌 run버튼으로 실행했을때는 코드 변경에 따른 reload가 되지 않아 실행을 멈춘다음에 다시 run버튼을 실행해야 바뀐 코드가 적용이 됩니다.
그리고 포트번호를 변경할때는 main.py에서 port를 변경하면 됩니다.