1. 경로 변수와 쿼리 파라미터

    함수 파라미터로 받을 수 있다.

async def read_item(skip: int = 0, limit: int = 2) -> str :
  1. Request Body받기

    pydantic Model로 선언된 객체를 함수 인자에 매핑시킬 수 있다.

    이때 매핑시키기 위해선 타입을 명시해줘야 한다.

    Class Item(BaseModel):
    	name: str
    	price: ploat
    	
    	
    	
    @app.post("/items/")
    async def create_item(item: Item):
    	return
    

pydantic Model을 작성할때 필드를 옵셔널하게 만들기 위해선 다음의 두 가지 선택지가 있다.

Optionaltyping 모듈에서 임포트한다.

class Item(BaseModle):
	name: str
	description1 str | None = None
	description2 Optional[str] = None

요청의 Body를 Dict로변환해 함수 내부에서 사용하기

이때 pydantic의 model_dump() 메서드를 이용한다. fastapi가 pydantic model 객체로 받은 인자를 파이썬 딕셔너리 타입으로 변환시켜준다.

@app.post("/items_txt/")
async def create_item_tax(item: Item):
	item_dict = item.model_dump()

이를 통해 해당 딕셔너리에 새로운 키 값을 추가하는 등의 추가 작업이 파이썬 코드로 가능해진다.

💡딕셔너리의 None 값은 응답을 위해 Json으로 변경되면 null 값으로 변경된다.

💡딕셔너리를 언패킹하는 문법 ** 과 함께 사용하면 더 편리하게 사용가능

result = {**item.model_dump()}

이러면 item객체 내부까지 전부 언패킹해서 키-밸류로 result객체에 저장하게 된다.

Form 객체 다루기

이때는 FastAPI에서 Form()으로 처리함. Form내의 개별 input값들은 input의 name 속성과 일치하는 변수로 함수 인자에서 받아서 사용할 수 있다.