20 个版本

0.2.0 2020 年 1 月 16 日
0.1.18 2019 年 11 月 10 日
0.1.17 2019 年 10 月 23 日
0.1.15 2018 年 12 月 3 日
0.1.8 2018 年 7 月 3 日

#2028网页编程

Download history 27/week @ 2024-03-26 84/week @ 2024-04-02

每月 69 次下载

MIT/Apache

32KB
908

EPITECH-API

这是一个建立在 reqwest 之上的 Rust 库,用于与 EPITECH 内部网络交互。
该库侧重于易用性和类型安全。

目标

本项目旨在将类型附加到内部资源,以便所有可能的成员都能清晰表示并安全访问。

如何使用

一切从 Client 结构体开始。

您可以通过这种方式创建一个 Client

use epitech_api::{Client, Error};

let result = Client::builder()
    .autologin("[INSERT AUTOLOGIN LINK HERE]")
    .authenticate()
    .await; // This returns a `Result<Client, Error>`.

let client = match result {
    Ok(client) => client,
    Err(err) => , // Handle authentication error here.
};

在此之后,您已经认证了内部网络,并准备好进行请求。

例如,您可以这样请求一个班级所有学生的列表

// This makes the request and returns a `Result<Vec<UserEntry>, Error>`.
let result = client.fetch_student_list()
    .location(Location::Strasbourg)
    .promo(Promo::Tek2)
    .year(2020)
    .send()
    .await;

Client::make_request 允许您向内部网络发出任意请求

// Notice that only the path component of the route can be passed to the method.
let my_student_infos = match client.make_request("/user").await {
    Ok(text: String) => , // Here, `text` represents the raw intranet response body.
    Err(err: Error) => , // Handle request error here.
};

依赖关系

~4–9MB
~193K SLoC