앞서 살펴본 바와 같이 Warp에서 핵심 개념은 Filter이다. 트레이트로 Warp에서 구현되며 데이터를 파싱, 변경, 반환할 수 있다. 사용할수록 용법을 더 쉽게 이해할 것이다.
and 키워드로 필터를 연결할 수 있다. GET 메서드로 들어오는 모든 HTTP 요청을 필터링하는 get 필터부터 시작한다. 다음에 호스트 URL 뒤에 오는 매개변수로 HTTP 요청을 필터링하는 경로를 추가한다. 코드 3-4를 예로 들자면 localhost:3030/questions에 대한 모든 GET 요청을 필터링한다. path::end 필터를 써서 정확히 /questions 요청만 받는다(예를 들어 /questions/more/deeper로 들어오는 요청은 받지 않는다). 각 요청은 각 필터를 거치며, 해당되는 경우 경로 핸들러 get_questions를 호출하는 .and_then 부분을 호출한다.
경로 핸들러에는 고정된 반환 서명이 있어야 한다. 다음을 반환해야 한다.
• 결과
• 성공하는 경우에는 warp::Reply
• 에러가 일어나는 경우에는 warp::Rejection