더북(TheBook)
    let routes = get_questions
        .or(add_question)
        .with(cors)
        .recover(return_error);
    warp::serve(routes).run(([127, 0, 0, 1], 3030)).await;
}

새로운 변수를 만들어 warp::post로 HTTP POST 요청에 대한 필터를 만든다.

아직은 동일한 최상위 경로 /questions에서 요청을 받는다.

경로 정의를 마친다.

이 경로에 저장소를 추가해서 나중에 경로 핸들러에 전달한다.

내용을 JSON으로 추출한다. 추출한 내용은 매개변수로 추가된다.

저장소와 추출한 json 값으로 add_question을 실행한다.

경로 변수에 새로운 경로 두 개를 추가했다. Not Found 경로로 끝나기 전에 다른 경로로 전달하기 위해 get_questions 필터 끝에 있던 recover를 삭제하고 경로 끝에 추가했다는 점에 주의한다. 다음과 같이 curl로 테스트하면 add_question 경로 핸들러가 실패하는 것을 확인할 수 있다(의도적으로 JSON에 id 항목을 빼고 넣었다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.