این راهنما روش استفاده از SDKهای Rust تولیدشده با Postman SDK Generator را توضیح میدهد. SDK Rust روی type safety، serialization با Serde، error handling صریح، نصب با Cargo و انتشار در crates.io تمرکز دارد.
ساختار SDK Rust #
src/lib.rs: نقطه ورود crate و exportهای اصلی.src/client.rs: client اصلی SDK.src/services/: serviceها برای endpointها.src/models/: structها و enumهای request/response.src/error.rs: error typeهای SDK.Cargo.toml: metadata، featureها و dependencyها.
Type safety با Serde #
مدلهای Rust با typeهای مشخص و deriveهای Serde ساخته میشوند. این کار باعث میشود serialization و deserialization از JSON با کنترل compile-time و runtime انجام شود.
use serde::{Serialize, Deserialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct User {
pub id: String,
pub email: String,
}
Optional و nullable fieldها #
در Rust معمولا Option<T> برای fieldهای optional یا nullable استفاده میشود. این کمک میکند تفاوت بین نبودن مقدار و داشتن مقدار مشخص روشن باشد.
Error handling #
SDKهای Rust معمولا از Result<T, E> استفاده میکنند و خطا را صریح به caller برمیگردانند.
اجرای نمونه SDK #
cd examples
cargo run
use your_sdk::{Client, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new(Config {
api_key: Some("your-api-key".to_string()),
base_url: Some("https://api.example.com".to_string()),
..Default::default()
});
let user = client.users().get_user("123").await?;
println!("User: {:?}", user);
Ok(())
}
نصب SDK Rust #
نصب با Cargo #
cargo add your-sdk
نصب از مسیر local #
[dependencies]
your-sdk = { path = "../path/to/your-sdk" }
نصب از Git repository #
[dependencies]
your-sdk = { git = "https://github.com/your-org/your-sdk", tag = "v1.0.0" }
انتشار در crates.io #
برای انتشار، حساب crates.io، API token و metadata کامل در Cargo.toml لازم است.
[package]
name = "your-sdk"
version = "1.0.0"
edition = "2021"
description = "SDK for Your API"
license = "MIT"
repository = "https://github.com/your-org/your-sdk"
readme = "README.md"
cargo login YOUR_TOKEN
cargo package
cargo publish
برای نسخه جدید، version را بالا ببرید و دوباره publish کنید.
cargo publish
بهترین کارها برای Rust SDK #
- قبل از انتشار
cargo test،cargo clippyوcargo fmtرا اجرا کنید. - feature flagها را شفاف نامگذاری کنید.
- README و examples را کامل نگه دارید.
- از semantic versioning استفاده کنید.
- error typeهای واضح و قابل match کردن ارائه دهید.
Advanced configuration #
بسته به خروجی generator، میتوانید authentication، base URL، timeout، retry و transport را از طریق config تنظیم کنید.
let config = Config {
api_key: Some("your-api-key".to_string()),
base_url: Some("https://custom.api.example.com".to_string()),
timeout_ms: Some(10_000),
..Default::default()
};
منابع داخل SDK #
- پوشه
documentation/برای serviceها و modelها. - پوشه
examples/برای نمونههای async قابل اجرا. Cargo.tomlبرای featureها و dependencyها.- مدلهای Serde و error typeهای SDK.
منبع آموزشی: Postman Docs، بازنویسی و سادهسازیشده برای کاربران فارسیزبان.

