#api #fortnite #tokio

fortnite-api

用于与 Fortnite API 交互的库

4 个版本

0.1.3 2024 年 5 月 25 日
0.1.2 2024 年 2 月 10 日
0.1.1 2024 年 2 月 6 日
0.1.0 2024 年 2 月 6 日

923游戏 中排名

每月下载 36

MIT 许可证

45KB
877

Fortnite API

此 crate 是 Fortnite API 的包装器。

用法

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_news_v2(&http_client, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

端点

端点 函数 结果类型
AES V2 get_aes_keys_v2 AesV2
Banners V1 get_banners_v1 BannersV1
Banners Colors V1 get_banners_colors_v1 BannersColorsV1
Cosmetics V2 get_cosmetics_v2 CosmeticsV2
Cosmetics New V2 get_cosmetics_new_v2 CosmeticsNewV2
Cosmetic By ID V2 get_cosmetic_by_id_v2 CosmeticV2
Creator Code V2 get_creatorcode_v2 CreatorCodeV2
Map V1 get_map_v1 MapV1
News V2 get_news_v2 NewsV2
News Gamemode V2 get_news_br_v2 get_news_stw_v2 get_news_creative_v2 新闻
Playlists V1 get_playlists_v1 PlaylistsV1
Playlists By ID V1 get_playlist_by_id_v1 PlaylistV1
Shop BR V2 get_shop_br_v2 get_shop_combined_v2 ShopV2
Stats V2 get_stats_v2 get_stats_by_account_id_v2 StatsV2

获取当前 AES 密钥。

参数

  • http_client: reqwest 客户端。
  • key_format: AES 密钥的格式。可以是 NoneSome(AesKeyFormat::Hex)Some(AesKeyFormat::Base64)

返回

当前 AES 密钥。

示例

use fortnite_api::response_types::aes::AesKeyFormat;

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_aes_keys_v2(&http_client, Some(AesKeyFormat::Hex)).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

获取横幅。

参数

  • http_client: reqwest 客户端。
  • language:横幅的语言。可以是 None 或语言代码。

返回

横幅。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_banners_v1(&http_client, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

获取横幅颜色。

参数

  • http_client: reqwest 客户端。

返回

横幅颜色。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_banners_colors_v1(&http_client).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

获取化妆品。

参数

  • http_client: reqwest 客户端。
  • language:化妆品的语言。可以是 None 或语言代码。

返回

化妆品。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_cosmetics_v2(&http_client, None).await;
    assert!(result.is_ok());
}

获取新化妆品。

参数

  • http_client: reqwest 客户端。
  • language:化妆品的语言。可以是 None 或语言代码。

返回

新化妆品。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_cosmetics_new_v2(&http_client, None).await;
    assert!(result.is_ok());
}

通过ID获取化妆品。

参数

  • http_client: reqwest 客户端。
  • cosmetic_id:化妆品的ID。
  • language:化妆品的语言。可以是 None 或语言代码。

返回

通过ID获取的化妆品。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_cosmetics_new_v2(&http_client, None).await;
    assert!(result.is_ok());

    let cosmetic_id = result.unwrap().items.first().unwrap().id.clone();
    let result = fortnite_api::get_cosmetic_by_id_v2(&http_client, &cosmetic_id, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

获取创建者代码。

参数

  • http_client: reqwest 客户端。
  • name:创建者代码的名称。

返回

创建者代码。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_creatorcode_v2(&http_client, "trymacs").await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

获取地图。

参数

  • http_client: reqwest 客户端。
  • language:地图的语言。可以是 None 或语言代码。

返回

地图。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_map_v1(&http_client, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

获取新闻。

参数

  • http_client: reqwest 客户端。
  • language:新闻的语言。可以是 None 或语言代码。

返回

新闻。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_news_v2(&http_client, None).await;
    println!("Result: {:#?}", result);
}

获取皇室战争新闻。

参数

  • http_client: reqwest 客户端。
  • language:新闻的语言。可以是 None 或语言代码。

返回

皇室战争新闻。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_news_br_v2(&http_client, None).await;
    println!("Result: {:#?}", result);
}

获取拯救世界新闻。

参数

  • http_client: reqwest 客户端。
  • language:新闻的语言。可以是 None 或语言代码。

返回

拯救世界新闻。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_news_stw_v2(&http_client, None).await;
    println!("Result: {:#?}", result);
}

获取创意新闻。

参数

  • http_client: reqwest 客户端。
  • language:新闻的语言。可以是 None 或语言代码。

返回

创意新闻。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_news_creative_v2(&http_client, None).await;
    println!("Result: {:#?}", result);
}

获取播放列表。

参数

  • http_client: reqwest 客户端。
  • language:播放列表的语言。可以是 None 或语言代码。

返回

播放列表。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_playlists_v1(&http_client, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

通过ID获取播放列表。

参数

  • http_client: reqwest 客户端。
  • language:播放列表的语言。可以是 None 或语言代码。

返回

通过ID获取的播放列表。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_playlists_v1(&http_client, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());

    let playlist_id = result.unwrap().first().unwrap().id.clone();
    let result = fortnite_api::get_playlist_by_id_v1(&http_client, &playlist_id, None).await;
    println!("Result: {:#?}", result);
}

获取皇室战争商店。

参数

  • http_client: reqwest 客户端。
  • language:商店的语言。可以是 None 或语言代码。

返回

皇室战争商店。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_shop_br_v2(&http_client, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

获取综合商店。

参数

  • http_client: reqwest 客户端。
  • language:商店的语言。可以是 None 或语言代码。

返回

综合商店。

示例

#[tokio::main]
async fn main() {
    let http_client = reqwest::Client::new();

    let result = fortnite_api::get_shop_combined_v2(&http_client, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

获取玩家统计数据。

参数

  • http_client: reqwest 客户端。
  • api_key:您的《堡垒之夜》API密钥。
  • name:玩家的名称。
  • account_type:玩家的账户类型。可以是 NoneStatsAccountType
  • time_window:统计数据的时段。可以是 NoneStatsTimeWindow
  • image:统计数据的图像。可以是 NoneStatsImage
  • language:商店的语言。可以是 None 或语言代码。

返回

玩家统计数据。

示例

use fortnite_api::response_types::stats::{StatsAccountType, StatsImage, StatsTimeWindow};

#[tokio::main]
async fn main() {
    dotenv::dotenv().ok();
    let http_client = reqwest::Client::new();
    let api_key = std::env::var("FORTNITE_API_KEY")
        .expect("Please set the FORTNITE_API_KEY environment variable");

    let result =
        fortnite_api::get_stats_v2(&http_client, api_key.clone(), "Test", None, None, None).await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

通过账户ID获取玩家统计数据。

参数

  • http_client: reqwest 客户端。
  • api_key:您的《堡垒之夜》API密钥。
  • account_id:玩家的账户ID。
  • time_window:统计数据的时段。可以是 NoneStatsTimeWindow
  • image:统计数据的图像。可以是 NoneStatsImage

返回

玩家统计数据。

示例

use fortnite_api::response_types::stats::{StatsAccountType, StatsImage, StatsTimeWindow};

#[tokio::main]
async fn main() {
    dotenv::dotenv().ok();
    let http_client = reqwest::Client::new();
    let api_key = std::env::var("FORTNITE_API_KEY")
        .expect("Please set the FORTNITE_API_KEY environment variable");

    let result = fortnite_api::get_stats_by_account_id_v2(
        &http_client,
        api_key.clone(),
        "3f20d6f579db4e7ba71d80fc18576db2",
        None,
        None,
    )
    .await;
    println!("Result: {:#?}", result);
    assert!(result.is_ok());
}

依赖项

~5–16MB
~229K SLoC