#api #http #http-request #async #api-bindings #lalamove #commerce

nightly lalamove-rs

这是一个非官方的拉拉快运API的Rust库。它仍在开发中;欢迎提交Pull Request!

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日

#289HTTP客户端

每月31次下载

Apache-2.0

47KB
1K SLoC

关于

这是一个非官方的拉拉快运API的Rust库!

安装

使用

以下是一些示例代码,展示了如何下单。

// 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