Rust SDK
crates.io'daki pushizo crate'i — Rust 1.71+, ureq; OpenAPI'den üretilen modeller ve servisler, yeniden deneme, idempotency, sayfalama, webhook imza doğrulaması.
Kaynak: sdk/rust, açık depo pushizo-rust. Modeller (pushizo::models) ve kaynak servisleri (pushizo::resources) api/openapi.yaml'dan üretilir ve diğer sunucu SDK'larıyla aynı uçları kapsar; kimlik doğrulama, yeniden deneme, idempotency, sayfalama, multipart ve webhook imza doğrulaması el yazımıdır.
Kurulum
cargo add pushizoKullanım
use std::collections::HashMap;
use pushizo::models::{CreateNotificationDto, CreateNotificationDtoTarget};
use pushizo::{Client, RequestOptions};
fn main() -> pushizo::Result<()> {
let client = Client::builder(std::env::var("PUSHIZO_API_KEY").unwrap_or_default())
.app_id("app_…")
.build()?;
let mut target = CreateNotificationDtoTarget::default();
target.include_aliases = Some(HashMap::from([("external_id".into(), vec!["user-42".into()])]));
let body = CreateNotificationDto {
target,
contents: Some(HashMap::from([("en".into(), "Your order shipped".into())])),
..Default::default()
};
let res = client
.notifications()
.with_options(RequestOptions::new().idempotency_key("order-1001"))
.create(&body)?;
println!("{} {}", res.id, res.status);
// Cursor sayfalama: tüm sayfalar tek yineleyici
for segment in client.segments().list_all(None) {
println!("{}", segment?.name);
}
Ok(())
}Davranış
- App kapsamı:
ClientBuilder::app_idvarsayılandır; servis başınawith_options(RequestOptions::new().app_id(…)). - Yeniden deneme: 429 her metotta; 5xx ve ağ hataları GET/PUT/DELETE'te, POST/PATCH'te yalnızca
Idempotency-Keyvarsa.Retry-Afteruygulanır. - Hatalar:
pushizo::Error(status,code,message,request_id) vekind()(NotFound,RateLimited…). API anahtarı hata metnine veDebugçıktısına yazılmaz. - Webhook:
construct_webhook_events(ham_gövde, Some(imza_başlığı), &[secret], &Default::default()). - Kimlik doğrulama:
identity_hash(sdk_secret, external_id)ve ES256identity_token(&IdentityTokenOptions { … }).
Ayrıntılı rehber: pushizo-rust README.
Ruby SDK
pushizo (RubyGems) — Ruby 3.0+, Net::HTTP; üretilen modeller ve kaynak metotları, yeniden deneme, idempotency, Enumerator sayfalama, webhook imza doğrulaması.
API'ye genel bakış
Pushizo public REST API — taban adres, kimlik doğrulama ve kapsamlar, istek/yanıt kuralları, hata zarfı, hız sınırları, sayfalama, idempotency, webhook imzası, sürümleme, veri yerleşimi, SDK'lar, MCP, OpenAPI ve Postman.