제일 놀라왔던 특징은 Swagger를 통해 자동으로 api 문서를 만들어준다는 것이다.
from typing import Union
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
is_offer: Union[bool, None] = None
@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}
@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
return {"item_name": item.name, "item_id": item_id}
위의 코드만으로도 서버를 바로 띄울 수 있다.
python -m venv .venv
어떤 프로젝트를 수행하던 가상환경을 만드는 습관을 들여놓자.
pip install fastapi uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/items/{item_id}")
async def read_item(item_id):
return {"item_id": item_id}
uvicorn main:app --reload
다음과 같은 화면이 뜨면 서버가 성공적으로 떴다는 것을 의미한다.