더북(TheBook)

update_question 함수와 마찬가지로 HashMap에서 키로 값을 가져올 때 match를 쓰는데, 그 이유는 질문을 찾지 못할 수도 있기 때문이다. .remove를 사용할 때 질문 ID를 전달할 수 있으며, 무언가를 찾으면 올바른 상태 코드, 메시지와 함께 Ok를 반환하며, 여기에서 언더스코어(_)는 반환되는 값이 필요 없음을 알려준다.

서버에 새로운 경로를 추가하는 것으로 구현을 마무리한다. 이번에는 본문을 파싱하지 않는다는 점을 제외하면 update_question 경로와 묘하게 비슷하다.

코드 4-37 질문 삭제를 위한 경로 추가하기

...
#[tokio::main]
async fn main() {
    let store = Store::new();
    let store_filter = warp::any().map(move || store.clone());
    ...
    let update_question = warp::put()
        .and(warp::path("questions"))
        .and(warp::path::param::<String>())
        .and(warp::path::end())
        .and(store_filter.clone())
        .and(warp::body::json())
        .and_then(update_question);
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.