더북(TheBook)

4.1 인메모리 스토리지에서 질문 가져오기

API를 정의할 때 부담스럽게 실제 데이터베이스로 시작하는 것보다는 해시 맵이나 배열로 시작하는 것이 항상 현명하다. 데이터베이스를 매번 마이그레이션하지 않고도 개발 단계에서 데이터 모델을 신속하게 변경할 수 있기 때문이다.

또 다른 이유는 인메모리 데이터베이스(애플리케이션 시작할 때마다 초기화되는 캐시 구조)를 쓰면 지속적으로 모의 서버로 테스트할 수 있기 때문이다. JSON 파일의 데이터 집합을 파싱해서 벡터와 같은 로컬 구조로 읽을 수 있다. 이전 장에서는 HTTP GET 요청에 대한 예제 질문을 반환했다.

코드 4-1 GET /questions 경로 핸들러

...
async fn get_questions() -> Result<impl Reply, Rejection> {
    let question = Question::new(
        QuestionId::from_str("1").expect("No id provided"),
        "First Question".to_string(),
        "Content of question".to_string(),
        Some(vec!["faq".to_string()]),
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.