5个版本
0.1.4 | 2023年9月10日 |
---|---|
0.1.3 | 2023年9月8日 |
0.1.2 | 2023年9月3日 |
0.1.1 | 2023年8月30日 |
0.1.0 | 2023年8月28日 |
#289 在 HTTP客户端
每月31次下载
47KB
1K SLoC
关于
这是一个非官方的拉拉快运API的Rust库!
安装
- 从 crates.io 安装此软件包。
使用
以下是一些示例代码,展示了如何下单。
// DISCLAIMER: This code snippet is untested.
use lalamove_rs::{
Config, DeliveryRequest, Lalamove, Location, PersonInfo, PhilippineLanguages,
PhilippineMarket, QuotationRequest,
};
use dotenvy_macro::dotenv;
use phonenumber::parse;
use reqwest::Client;
#[tokio::main]
async fn main() {
let lalamove = Lalamove::<PhilippineMarket, Client>::new(
Config::new(
dotenv!("LALAMOVE_API_KEY").to_string(),
dotenv!("LALAMOVE_API_SECRET").to_string(),
PhilippineLanguages::English,
)
.unwrap(),
);
let market_info = lalamove.market_info().await.unwrap();
let (quoted_request, _) = lalamove
.quote(QuotationRequest {
pick_up_location: Location {
latitude: 14.535372967557564,
longitude: 120.98197538196277,
address: "SM Mall of Asia, Seaside Boulevard, 123, Pasay, Metro Manila".to_owned(),
},
service: market_info.regions[0].services[0].service.clone(),
stops: [Location {
latitude: 14.586164229973143,
longitude: 121.05665251264826,
address: "SM Megamall, Doña Julia Vargas Avenue, Ortigas Center, Mandaluyong, Metro Manila".to_string(),
}],
})
.await
.unwrap();
let delivery = lalamove
.place_order(DeliveryRequest {
quoted: quoted_request,
sender: PersonInfo {
name: "Alice".to_string(),
phone_number: parse(None, "+639000001024").unwrap(),
},
recipients_info: [PersonInfo {
name: "Bob".to_string(),
phone_number: parse(None, "+639000000512").unwrap(),
}],
})
.await
.unwrap();
println!("{delivery:?}");
}
文档
遗憾的是,该项目还没有文档。它仍在开发中!
更多信息
目前,此库仅支持菲律宾市场(因为这是我需要用它的情况),但我计划在未来完善此软件包。欢迎提交Pull Request!我仍是一名Rust新手程序员,所以我需要所有我能得到的帮助来构建此库。
变更日志
0.1.4 将类型的序列化和反序列化从其结构中分离出来。
0.1.3
- 将[纬度]和[经度]字段从[位置]分离出来,成为一个名为[坐标]的新类型。
0.1.2
- 手动实现了[Debug]以修复一些特例错误。
0.1.1
- 使[Lalamove]客户端可克隆。
依赖
~24–40MB
~405K SLoC