본문 바로가기
WIKI 기술 지식 베이스

Turso + Rocket

원문 보기 위키 갱신

Rocket 프로젝트에도 몇 분이면 Turso를 붙일 수 있어요. 이 가이드는 자격 증명 준비부터 libsql 크레이트 추가, 그리고 Rocket 핸들러에서 Turso 데이터베이스를 쿼리하는 방법까지 안내해요.

출처: 문서

본문

시작 전 준비물

시작하기 전에 다음을 확인해 주세요.

단계별 진행

1. 데이터베이스 자격 증명 가져오기

계속하려면 기존 데이터베이스가 필요해요. 없다면 먼저 데이터베이스를 만들어 주세요. 데이터베이스 URL과 인증 토큰을 확보한 뒤에는 환경 변수로 저장해 두는 편이 좋아요.

2. 프로젝트에 libsql 크레이트 추가하기

cargo add libsql

참고: 선택 사항으로, .env 파일을 다룰 때 도움이 되는 dotenvy 같은 패키지를 추가할 수도 있어요.

cargo add dotenvy

3. SQL 실행하기

#[get("/todos")]
async fn get_todos() -> Json<Vec<Todo>> {
    dotenv().expect(".env file not found");

    let url = env::var("TURSO_DATABASE_URL").expect("TURSO_DATABASE_URL not found!");
    let token = env::var("TURSO_AUTH_TOKEN").expect("TURSO_AUTH_TOKEN not found!");

    let db = Database::open_remote(url, token).unwrap();
    let conn = db.connect().unwrap();

    let mut response = conn.query("select * from todos", ()).await.unwrap();

    let mut todos: Vec<Todo> = Vec::new();
    while let Some(row) = response.next().unwrap() {
        let todo: Todo = Todo {
            task: row.get(0).unwrap(),
        };
        todos.push(todo);
    }

    Json(todos)
}

#[launch]
fn rocket() -> _ {
    dotenv().ok();
    rocket::build().mount("/", routes![get_todos])
}

예제 (Examples)

더 알아보기 (Learn more)