5 个不稳定版本

0.5.0 2022 年 5 月 1 日
0.4.2 2021 年 12 月 31 日
0.3.0 2021 年 12 月 18 日
0.0.0 2020 年 10 月 6 日

#141 in 缓存

AGPL-3.0

135KB
4K SLoC

这是什么?

Supernova REST API 的客户端库。

用法

use iron_planet::{Supernova, RequestConfig};

fn main() {
    // Instantiate an unprivileged client
    let sn = Supernova::new();
    let conf = RequestConfig::default();
    // One can use it to query endpoints that require no auth
    let result = sn.get_buildings(&conf); // Will succeed, hopefully
    // But not to query endpoints that require user auth
    let result = sn.get_class_inst(123, &conf); // Will fail, hopefully
    // It is possible to enable authentication in two different ways
    // One can provide authentication credentials in the form of a user-pass
    // A successful login will return a result with the session token
    let token = sn.login("user", "pass").unwrap();
    sn.logout();
    // The second one is to provide an existing token
    sn.set_auth_token(token);
}

重要提示

  • 每个响应都会被缓存,目前没有绕过缓存的方法,除非实例化一个新的客户端。
  • 可以在实例化时调用 warmup() 以立即加载建筑、课程、班级、部门和地点。这可能是有益的,以换取启动时的惩罚(5 到 15 秒)来加快后续访问。
  • 如果不需要所有这些,可以单独调用 get_[collection] 函数。
  • 大多数关系都通过绑定到客户端的特殊指针类型进行懒加载。这些可以并发加载。
  • 是的,这个库是线程安全的。可能会有异步端口,但到目前为止,就是这样。

依赖关系

~7–19MB
~256K SLoC