더북(TheBook)

러스트에서 이 부분은 어떻게 보일까? 러스트에서 웹사이트를 비동기 방식으로 가져오는 방법을 코드 1-12로 살펴보겠다. 이 코드는 책의 깃허브 저장소(https://github.com/gilbutITbook/080350)에서 찾을 수 있다. 여기서는 코드를 자세히 설명하지 않을 것이다. 좀 더 자세한 내용은 2장 이후에서 볼 수 있으므로, 일단 러스트에서 비동기 코드를 어떻게 작성하는지 첫 번째 아이디어만 살펴보자. 이 스니펫을 실행하려면 Cargo.toml 파일에서 외부 크레이트 Reqwest(이는 오타가 아니며 request라는 단어를 의미하지도 않는다)를 프로젝트에 추가해야 한다.

코드 1-12 HTTP GET 요청을 러스트에서 비동기적으로 보내기(chapter_01/minimal-reqwest/src/main.rs)

use std::collections::HashMap;

#[tokio::main] 
async fn main() -> Result<(), Box<dyn std::error::Error>> { 
    let resp = reqwest::get("https://httpbin.org/ip") 
        .await? 
        .json::<HashMap<String, String>>()
        .await?;
    println!("{:#?}", resp); 
    Ok(()) 
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.