더북(TheBook)

r.find로 특정한 거부를 찾을 수 있다. 해당하는 내역을 찾았다면 좀 더 구체적인 HTTP 코드와 메시지로 바꿔 보낼 수 있다. 그렇지 않다면 경로를 찾을 수 없는 상황이므로 기본 404 Not Found HTTP 메시지를 반환한다.

전체 프로세스를 그림 3-4에서 다시 확인한다. warp::serve로 서버를 시작하고 해당 서버로 HTTP 메시지가 들어온다. 프레임워크는 HTTP 메시지를 보고 생성된 모든 경로(필터)를 거치면서 HTTP 요청의 메서드와 경로가 필터와 일치하는지 검사한다. 일치하는 필터가 있다면 이 특정 필터(route_handler)의 엔드포인트에서 호출하는 함수로 라우팅된다. 함수 내에서 warp::Reply 또는 warp::Rejection을 반환하고 .recover에서 에러를 처리한다. 여기에서 요청자에게 사용자 정의 에러를 반환한다.

cargo run으로 코드를 실행하면 localhost:3030/questions에서 HTTP 요청을 실행할 수 있다(코드 3-11 참조). Postman과 같은 서드파티 앱을 사용하거나 다른 터미널 창을 열고 curl 명령을 실행한다.

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