Skip to main content
Rust SDK는 Rust로 작성된 애플리케이션에서 Dodo Payments REST API에 편리하고 비동기 우선 접근을 제공합니다. 강력한 타입의 요청 및 응답, 내장 페이지네이션 도우미, 그리고 구성 가능한 타임아웃 및 환경 설정 기능을 제공합니다.

설치

SDK를 Cargo로 프로젝트에 추가하세요:
또는 수동으로 이를 Cargo.toml에 추가하세요:
SDK는 최적의 성능을 위해 최신 비동기 기능을 활용하며, Rust 1.75 이상이 필요합니다.

빠른 시작

클라이언트는 기본적으로 API 키를 DODO_PAYMENTS_API_KEY 환경 변수에서 읽습니다. 클라이언트를 초기화하고 첫 체크아웃 세션을 만드세요:
항상 환경 변수를 사용하여 API 키를 안전하게 저장하세요. 소스 코드에 하드코딩하지 마세요.

핵심 기능

Async First

Tokio 및 reqwest 기반으로 하여 async/await 전반의 지원 제공

Strong Typing

컴파일 타임 안전성을 위한 강력한 타입의 요청 및 응답

Auto-Pagination

페이지별로 모든 항목을 스트림하거나 한 페이지씩 진행

Configurable

클라이언트별로 환경, 타임아웃, 기본 URL 설정 가능

구성

환경 변수

기본적으로, Client::from_env()는 API 키를 DODO_PAYMENTS_API_KEY 환경 변수에서 읽고, DODO_PAYMENTS_BASE_URL를 설정하지 않으면 기본 기본 URL을 사용합니다:
클라이언트를 명시적으로 구성할 수도 있습니다. Client::newResult를 반환하므로 dodopayments::Result를 반환하는 함수 안에서 ?로 이를 해제하세요:

환경

기본 기본 URL은 https://live.dodopayments.com입니다. 하드코딩된 URL 대신 Environment enum을 사용하여 다른 환경을 선택하세요:
기본이 아닌 환경을 목표로 하는 동안 DODO_PAYMENTS_API_KEY를 통해 API 키를 계속 읽도록 하려면 설정에서 이를 재정의하세요:

타임아웃

기본 요청 타임아웃은 30초입니다. 클라이언트별로 이를 재정의하세요:

일반 작업

체크아웃 세션 생성

체크아웃 세션을 생성하세요:

고객 관리

고객 정보를 생성하고 검색하세요:

구독 관리

정기 구독을 생성 및 관리하세요:
POST /subscriptions (SDK의 subscriptions.create 메서드)는 deprecated입니다. 기존 통합에서는 계속 작동하지만, 새 통합에서는 Checkout Session을 통해 subscriptions를 생성해야 합니다.
billing에는 최소 두 글자의 ISO country 코드가 필요합니다. customerCustomerRequest enum입니다. 기존 customer에는 AttachExisting을, 새 customer에는 New을 전달하세요. product_price와 같은 금액 필드는 통화의 최소 단위로 표시됩니다(예: 2500 = $25.00 USD).

Usage-Based Billing

사용량 이벤트 수집

사용자 지정 이벤트를 추적합니다:

사용량 이벤트 나열

Pagination

List 엔드포인트는 items 필드에 현재 결과 페이지가 포함된 typed page를 반환합니다. into_stream를 사용하여 모든 페이지의 항목을 스트리밍하세요:
또는 get_next_page를 사용하여 한 번에 한 페이지씩 진행할 수 있습니다:

Error Handling

모든 메서드는 dodopayments::Result<T>를 반환합니다. 실패는 dodopayments::Error enum으로 나타납니다. 이를 기준으로 분기하여 API 오류와 transport 오류를 구분해 처리하세요:

Undocumented Endpoints

아직 typed method로 노출되지 않은 엔드포인트를 호출하려면 low-level request builder를 사용하세요. 이 builder는 인증과 base URL을 적용합니다:

Resources

GitHub Repository

소스 코드를 확인하고 기여하기

Crates.io

게시된 crate와 버전 확인하기

API Reference

전체 API documentation

Discord Community

도움을 받고 개발자와 연결하기

Support

Rust SDK에 도움이 필요하신가요?

Contributing

기여를 환영합니다! 시작하려면 기여 가이드라인을 확인하세요.
마지막 수정일 2026년 8월 17일