구상 상태 전송(Representational State Transfer, REST)
RESTful 서비스(로이 필딩(Roy Fielding)이 2000년에 도입했다.)1를 설계할 때는 제공하는 데이터에 접근하고 수정하는 데 상태 비저장(stateless) 방식을 사용한다. RESTful API는 보통 리소스별로 그룹화된 HTTP 엔드포인트로 GET, UPDATE, CREATE, DELETE하는 방법이다.
예를 들어 질문을 관리하는 경우, HTTP GET 요청을 사용해 질문 목록을 가져오고 ID를 전달하면 질문 하나에만 접근할 수 있다. UPDATE(HTTP PATCH 또는 HTTP PUT 사용), CREATE(HTTP POST 사용), DELETE(HTTP DELETE 사용)도 마찬가지다.
이렇게 하면 사용자에게 제공하는 API의 표현대로 데이터베이스 내부의 데이터 모델을 추상화할 수 있다. 심지어 데이터베이스의 모델 없이도 요청하는 사용자의 정보를 즉시 수집해 이를 전달할 수도 있다.
이 장에서의 모든 요청과 응답은 프레임워크의 도움으로 이루어지므로 웹 프레임워크에 많이 의존한다. 그러나 그 외는 웹 프레임워크에 의존하지 않는 순수한 러스트 코드이다. 이 장에서는 코드베이스를 점진적으로 개선해 나아갈 것이다. 4.1.3절까지 진행된 코드는 깃허브 저장소에서 확인할 수 있다.