✅ 책을 생성하는 API
@app.post("/create-book", status_code=status.HTTP_201_CREATED)
async def create_book(book_request: BookRequest):
new_book = Book(**book_request.model_dump()) # model_dump() 함수는 모델의 속성을 딕셔너리로 변환
BOOKS.append(find_book_id(new_book))
- **book_request.model_dump()는 Python의 언패킹 연산자(**)를 사용하여 Pydantic 모델을 키워드 인수로 확장하는 코드
✅ 동작 원리
이 코드는 book_request 객체(Pydantic 모델)에서 model_dump() 메서드를 호출한 후, 결과로 나온 딕셔너리를 이중 별표 연산자로 언패킹합니다.
✅ 작동 방식
1. **book_request.model_dump()**는 Pydantic 모델을 Python 딕셔너리로 변환합니다
2. **는 해당 딕셔너리를 키워드 인수로 언패킹합니다
✅ 사용 예
# book_request가 다음과 같은 필드를 가진 Pydantic 모델이라고 가정:
# book_request.title = "1984"
# book_request.author = "조지 오웰"
# book_request.year = 1949
# model_dump()는 {"title": "1984", "author": "조지 오웰", "year": 1949}를 반환
# **는 이를 title="1984", author="조지 오웰", year=1949로 언패킹
# 일반적인 사용 사례:
some_function(**book_request.model_dump())
# 다음과 같음: some_function(title="1984", author="조지 오웰", year=1949)
Book(**book_request.model_dump())
# 다음과 같음: Book(title="1984", author="조지 오웰", year=1949)