Fastapi는 현대적이고 빠르며, 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크이다.
fastapi 공식 홈페이지의 설명을 빌리자면,
성능이 빠르고, 버그가 적고, 직관적이며, 사용이 쉽고, 코드가 짧고, 표준 기반이라는 특징을 지니고 있다. 그 중 가장 큰 장점은 개방형 표준 기반(마치 Postman) 클라이언트가 내장되어있다는 점이다.
Cmder에서 가상환경 디렉토리를 생성한다.
원하는 경로에서 가상환경을 생성한 후, 다른 탭에서 activate.bat
를 실행한다.
python -m venv 가상환경이름
가상환경이름\Scripts\activate.bat
그리고, 작업할 dir로 이동한 후 code .
명령어를 사용하면 바로 실행할 수 있다.
cmder로 다시 돌아와서 fastapi 에 따라 api와 unicorn 서버를 설치하기 위해 아래 명령어를 실행한다.
pip install fastapi
python.exe -m pip install --upgrade pip
pip install "uvicorn[standard]"
pip install python-multipart
> 멀티미디어
uvicorn은 웹서버를 띄워주는 역할을 한다.
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}
fastapi 데코레이터 @app.get()은 앤드포인트 함수를 정의하는데 사용된다. 이 앤드포인트 함수는 URL 경로 또는
/items/{item_id}
에 대한 요청을 처리한다.
item_id
는 url경로를 나타낸다.q는 변수이고 타입은 str, none 둘다 가능하고 기본은 none이다. 문자열과 none도 허용한다는 뜻
item_id
는int
를 명시하고 있는데 이것은 fastapi가 Pydantic을 지원하기 때문이다.
Pydantic은 Python Type Hint를 사용한 데이터 유효성 검사 및 설정관리를 의미한다. 따라서, 약속되지 않은 값이 들어가지 않는 것을 방지한다.
서버를 띄우는 방법
uvicorn main:app --reload
실시간으로 수정사항을 리로드하려면 아래 명령어를 cmder에 날린다.
uvicorn main:app --port=9000 --reload