#security #uk #sia #api #api-bindings #license

sia_rs

一个用于与英国 SIA 注册交互的 Rust 库

5 个不稳定版本

0.3.0 2024年4月14日
0.2.1 2024年4月7日
0.1.2 2024年4月6日

#2 in #uk

Download history 6/week @ 2024-04-19 1/week @ 2024-06-28 10/week @ 2024-07-05

每月280次下载

MIT 许可证

44KB
817

SIA_RS

一个 Rust 库,用于搜索英国安全行业管理局(SIA)许可的安全操作员的注册。

提供通过许可证编号或许可证持有者详情进行搜索的简单易用的接口。

特性

  • 通过详情(名、姓、中间名、出生日期、角色和行业)搜索许可证
  • 通过许可证编号搜索许可证
  • 返回关于许可证持有者的所有公开信息
  • 异步和同步搜索功能
    • 同步函数在启用 blocking 功能时可用
  • 所有可能角色和行业的完整枚举映射

使用方法

use sia_rs::{Query, search};

#[tokio::main]
async fn main() {
    let query = Query::new()
        .with_last_name("Smith".to_string())
        .with_first_name("John".to_string());

    let results: Result<Vec<LicenseState>, RequestError> = search(&query).await;

    match results {
        Ok(licenses) => {
            for license in licenses {
                println!("{}", license);
            }
        },
        Err(e) => println!("Error: {}", e),
    }

    let query = Query::new()
        .with_license_number("1234567890123456".to_string());

    let results = search(&query).await;

    match results {
        Ok(licenses) => {
            for license in licenses {
                println!("{}", license);
            }
        },
        Err(e) => println!("Error: {}", e),
    }
}

所有交互都通过 Query 结构进行,该结构用于构建搜索查询。使用 search 函数执行搜索,并返回一个包含结果的 Vec<License>

阻塞

search_sync 函数是一个阻塞函数,将在返回结果之前等待搜索完成。此函数仅在启用 blocking 功能时可用。

[dependencies]
sia_rs = { version = "*", features = ["blocking"] }

测试

一些测试需要真实数据,并且只有当设置某些环境变量时才会运行

  • KNOWN_FIRST_NAME - 已知许可证持有者的名字
  • KNOWN_LAST_NAME - 已知许可证持有者的姓
  • KNOWN_LICENSE_NUMBER - 已知许可证持有者的许可证编号

出于隐私原因,这些内容不包括在源代码中。

注意

SIA 没有提供访问注册的官方 API,此库使用网络爬虫来检索数据。这意味着如果 SIA 更改其网站结构,库可能会损坏。

本库的作者不对本库检索的数据的任何滥用负责。

贡献

欢迎贡献,请提交问题或拉取请求。

依赖项

~9–22MB
~319K SLoC