5 个版本

使用旧的 Rust 2015

0.1.4 2019 年 5 月 30 日
0.1.3 2019 年 5 月 30 日
0.1.2 2019 年 4 月 13 日
0.1.1 2019 年 3 月 29 日
0.1.0 2019 年 3 月 16 日

#10 in #体育

MIT 许可证

2.5MB
3.5K SLoC

体育大师

体育大师是一家专注于提供不同运动统计数据、洞察和历史结果的公司的产品。这个库实现了对他们的 足球 API 的支持。

功能

注意:为了更好地了解此客户端或 SportMonks API 的功能,请参阅上面链接的官方文档。

以下列出了一些常见请求,您可以用此适配器进行更多操作

  • 请求已结束或正在进行的比赛的统计数据。
  • 请求关于全球足球比赛的信息。
  • 请求关于团队及其球员的信息。

以下是一些示例。

安装

要安装此库,请将以下行添加到您的 Cargo.toml 文件中

sport_monks = "0.1.4"

用法

请求关于比赛的信息

extern crate sport_monks;

use sport_monks::*;

fn main() {
    let client = Client::new("YOUR_API_TOKEN");
    let options = Options::builder().include(&["localTeam", "visitorTeam", "stats"]);
    let query = client.fixtures.find_with(11414789, options);
    match query {
        Ok(response) => {
            let game = response.data;
            let home_team = game.local_team.unwrap().name; 
            let away_team = game.visitor_team.unwrap().name;
            println!("{} {} - {} {}",
              home_team,
              game.scores.localteam_score,
              away_team,
              game.scores.visitorteam_score);
            
            let stats = game.stats.unwrap();
            println!("POS: {}% - {}%", stats[0].possessiontime, stats[1].possessiontime);
            println!("SHOTS: {} - {}", stats[0].shots.ongoal, stats[1].shots.ongoal);
            println!("FOULS: {} - {}", stats[0].fouls, stats[1].fouls);
            println!("FREE KICKS: {} - {}", stats[0].free_kick, stats[1].free_kick);
            println!("ATTACKS: {} - {}", stats[0].attacks.dangerous_attacks, stats[1].attacks.dangerous_attacks);

        },
        Err(sport_monks) => println!("{:?}", sport_monks),
    }
}

应在控制台打印

Real Madrid 1 - Ajax 4
POS: 57% - 43%
SHOTS: 8 - 8
FOULS: 12 - 11
FREE KICKS: 18 - 13
ATTACKS: 78 - 41

请求关于全球足球比赛的信息

extern crate sport_monks;

use sport_monks::*;

fn main() {
    let client = Client::new("YOUR_API_TOKEN");
    let query = client.leagues.all();
    match query {
        Ok(response) => {
            let leagues = response.data;
            for league in leagues {
                let options = Options::builder().include(&vec!["standings.team"]);
                match client.standings.find_with(league.current_season_id, options) {
                    Ok(second_response) => {
                        let stadings = &second_response.data[0].standings;
                        println!("{}: {} {}", league.name, stadings[0].team_name, stadings[0].points)
                    },
                    Err(sport_monks) => println!("{:?}", sport_monks),
                }
            }
        },
        Err(sport_monks) => println!("{:?}", sport_monks),
    }
}

该代码片段应打印您计划中包含的所有足球比赛的排行榜。

请求关于团队及其球员的信息

extern crate sport_monks;

use sport_monks::*;

fn main() {
    let client = Client::new("API_TOKEN");
    let options = Options::builder().include(&["squad.player"]);
    let query = client.teams.find_with(7980, options);
    match query {
        Ok(response) => {
            let team = response.data;
            for player in team.squad.unwrap() {
                let player = player.player.unwrap();
                println!("{} ({}) plays at {}", player.fullname.unwrap(), player.nationality.unwrap(), team.name)
            }
        },
        Err(sport_monks) => println!("{:?}", sport_monks),
    }
}

上面的代码片段应打印马德里竞技队的球员姓名和国籍。

依赖项

~20MB
~440K SLoC