2 个不稳定版本

0.2.0 2020 年 2 月 14 日
0.1.0 2020 年 2 月 10 日

#4 in #pokeapi

BSD-3-Clause

68KB
1.5K SLoC

卡牌锈

Crates.io Crates.io Crates.io

支持缓存的 https://pokeapi.co/ v2 包装库。

文档

该库的文档可以在 docs.rs (WIP) 找到。对于 API 的文档,请参阅 https://pokeapi.co/docs/v2.html

基本用法

通过 ID 从 API 获取对象

use pokerust::{Berry, FromId};

fn main() {
    let berry = Berry::from_id(1).unwrap();
}

或通过名称

use pokerust::{Berry, FromName};

fn main() {
    let berry = Berry::from_name("cheri").unwrap();
}

API 响应将自动缓存。

您还可以获取资源列表

let items = Item::list(5, 20)?;  // ?offset=5&limit=20

// get the lists referenced in the next and previous fields
items.previous_list()?;
items.next_list()?;

// you can also just get the full list
let all_items = Item::full_list()?;

要获取由 (Named)APIResource 指向的资源,请使用 get()

let berry = Berry::from_name("cheri")?;
let berry_item = berry.item.get()?; // berry_item is an Item

这可以进行链式调用

let marill = PokemonSpecies::from_name("marill")?;
let sea_incense = marill.evolution_chain.get()?.baby_trigger_item.unwrap().get()?;

使用的 pokeapi 位置可以通过设置 POKERUST_ENDPOINT 环境变量来更改。默认为 https://pokeapi.co/api/v2/ 的公共实例。在使用公共 API 实例之前,请参阅 pokeapi 文档并阅读公平使用政策。

许可

本软件根据 BSD 3-Clause "新"或"修订"许可证授权。

依赖

~1–1.9MB
~40K SLoC