#api-bindings #api #train #bahn #kvv #karlsruhe

kvv-efa-api

Rust对KVV(卡尔斯鲁厄交通联盟)“EFA”API的绑定

2个版本

0.1.1 2024年4月26日
0.1.0 2024年1月19日

#527 in 数据结构

Download history 110/week @ 2024-04-22 12/week @ 2024-04-29 1/week @ 2024-05-20

每月 77 下载

MIT 许可证

17KB
420

kvv-efa-api

Rust对KVV(卡尔斯鲁厄交通联盟)“EFA”API的绑定

警告:此API看起来不是一个永久的解决方案,它可能随时完全改变,使这些绑定失效!

示例

此crate包含在examples/目录中的示例,使用以下命令运行它们:

$ cargo run --example <example> --features reqwest

支持的请求

  • XSLT_DM_REQUEST: request::departure_monitor,
  • XSLT_STOPFINDER_REQUEST: request::stop_finder,
  • XSLT_TRIP_REQUEST
  • XSLT_SELTT_REQUEST
  • XSLT_CM_SHOWADDINFO_REQUEST
  • ...

示例代码

use kvv_efa_api::{self, request::{DepartureMonitorRequest, Request, StopFinderRequest}};

#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {        
    {
        // Search the station table for "Hauptbahnhof"
        let request = StopFinderRequest::builder()
            .name("Hauptbahnhof")
            .build();

        println!("Requesting {}...", request.url());

        let response = request.get().await?;

        println!("response: {:#?}", response);
    }

    {
        // Fetch the departures of station 7000090 ("Karlsruhe Hauptbahnhof")
        let request = DepartureMonitorRequest::builder()
            .name(7000090)
            .build();

        println!("Requesting {}...", request.url());

        let response = request.get().await?;

        println!("response: {:#?}", response);
    }

    Ok(())
}

来自 examples/basic.rs

依赖项

~2–14MB
~177K SLoC