더북(TheBook)

그 사이에 일어나는 모든 일은 우리가 해야 한다. 올바른 응답 타입으로 프레임워크에 보내 주기만 하면 된다. 지금은 /questions 경로의 HTTP GET 요청 필터 조합에만 할당하는 routes 객체를 만든다.

get_questions 함수의 끝에서 Warp의 JSON 함수를 호출하여 JSON 형식으로 질문을 반환한다. 지금 이것은 마술처럼 보인다. 컴파일러는 Question의 JSON 구조가 어떻게 보일지 알 수 있는가? 관련 문서(http://mng.bz/E0wJ)를 확인하면 다음과 같은 함수 서명을 볼 수 있다.

코드 3-5 Warp의 json 함수 서명

pub fn json<T>(val: &T) -> Json
where
    T: Serialize,
...

이는 우리가 함수에 전달하는 모든 값이 참조(val: &T)이어야 하고 Serialize를 구현해야 함을 보여 준다. 문서에서는 직렬화(serialize)라는 단어를 강조하여 표시하며, 이 단어를 클릭하면 Serde라는 라이브러리에 대한 문서가 표시된다.

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