4.2.4 잘못된 요청 처리하기
HTTP POST 또는 PUT 요청 내용에서 JSON을 파싱할 때 엄격한 타입 검사를 가진 프로그래밍 언어의 장점을 확인할 수 있다. 내용의 유효성을 자동으로 검사하기 때문에 우리가 해야 할 일은 return_error 메서드에서 BodyDeserializeError를 확인해 적절한 에러를 클라이언트에 다시 반환하기만 하면 된다.
코드 4-35 PUT 요청 내용에서 질문을 읽지 못할 때 에러 추가하기
...
use warp::{
filters::{body::BodyDeserializeError, cors::CorsForbidden},
http::Method,
http::StatusCode,
reject::Reject,
Filter, Rejection, Reply,
};
async fn return_error(r: Rejection) -> Result<impl Reply, Rejection> {
if let Some(error) = r.find::<Error>() {
Ok(warp::reply::with_status(
error.to_string(),
StatusCode::RANGE_NOT_SATISFIABLE,
))