더북(TheBook)

HashMap 객체에 직접 쓰던 add_question 경로 핸들러와 달리 질문의 변경 가능한 참조를 요청해 내용을 변경한다. match 블록을 사용하여 HashMap 객체에 전달하려는 ID에 맞는 질문이 있는지 확인한다.

match 표현식의 가지(arm)를 사용해서 찾은 질문을 풀어낸 후 *q = question으로 내용을 덮어쓴다. 질문이 없으면 즉시 중단하고 사용자 정의 에러인 QuestionNotFound를 반환한다. 경로의 모든 에러를 포착하는 return_error 함수로 변경할 수 있지만, 지금은 기본 404를 사용한다. 이런 경우를 처리하는 법을 알아보는 것도 훌륭한 연습 거리이다.

다음 코드에서 경로 핸들러를 서버에 추가한다. 이전 add_question과 거의 비슷하지만, 한 가지 작은 차이점이 있다. Warp 프레임워크에서 새로운 매개변수 필터를 추가하여 PUT 경로를 지정하는 것이다.

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