5 个不稳定版本
0.5.0 | 2022 年 5 月 1 日 |
---|---|
0.4.2 | 2021 年 12 月 31 日 |
0.3.0 | 2021 年 12 月 18 日 |
0.0.0 |
|
#141 in 缓存
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