pokeapi
PokeAPI
Crystal wrapper library for PokéAPI.
Installation
-
Add the dependency to your
shard.yml
:dependencies: pokeapi: github: henrikac/pokeapi
-
Run
shards install
Usage
Get a list of resources
To get a list of resources from any of the endpoints specified below use
.resource(endpoint : String, limit : UInt32 = 20, offset : UInt32 = 0)
require "pokeapi"
# returns a list of the first 20 pokémons
pokemons = PokeAPI.resource("pokemon")
# returns a list of 8 pokémons starting from #90 (if possible)
pokemons = PokeAPI.resource("pokemon", limit: 8, offset: 90)
Get a single item
Each of the endpoints has a corresponding method that can be used to get data from that specific endpoint, e.g.
/pokemon/{id or name}/
require "pokeapi"
pokemon_id = PokeAPI.pokemon(25) # => returns pokémon with id == 25
pokemon_name = PokeAPI.pokemon("eevee") # => returns pokémon with name eevee
/growth-rate/{id or name}/
require "pokeapi"
growth_rate = PokeAPI.growth_rate(2) # => returns growth-rate with id == 2
Cache
Data retrieved from PokéAPI is automaticly cached in-memory. However, the cache can be turned on/off manually if needed.
require "pokeapi"
PokeAPI::CACHE.enable
PokeAPI::CACHE.disable
It is also possible to clear the cache if needed.
require "pokeapi"
PokeAPI::CACHE.clear
The default time data is cached is set to 30 minutes.
require "pokeapi"
PokeAPI::CACHE.set_cache_time(45.mintues)
Errors
If no resource was found a PokeAPI::NoResourceError
is raised.
require "pokeapi"
begin
berry = PokeAPI.berry("weird-unknown-berry")
rescue ex : PokeAPI::NoResourceError
puts ex.status_code # => 404
puts ex.status_message # => Not Found
puts ex.message # => 404 - Not Found
end
Endpoints
Berries
- Berries
/berry/{id or name}/
- Berry Firmnesses
/berry-firmness/{id or name}/
- Berry Flavors
/berry-flavor/{id or name}/
Contests
- Contest Types
/contest-type/{id or name}/
- Contest Effects
/contest-effect/{id}/
- Super Contest Effects
/super-contest-effect/{id}/
Encounters
- Encounter Methods
/encounter-method/{id or name}/
- Encounter Conditions
/encounter-condition/{id or name}/
- Encounter Condition Values
/encounter-condition-value/{id or name}/
Evolution
- Evolution Chains
/evolution-chain/{id}/
- Evolution Triggers
/evolution-trigger/{id or name}/
Games
- Generations
/generation/{id or name}/
- Pokedexes
/pokedex/{id or name}/
- Version
/version/{id or name}/
- Version Groups
/version-group/{id or name}/
Items
- Item
/item/{id or name}/
- Item Attributes
/item-attribute/{id or name}/
- Item Categories
/item-category/{id or name}/
- Item Fling Effects
/item-fling-effect/{id or name}/
- Item Pockets
/item-pocket/{id or name}/
Locations
- Locations
/location/{id or name}/
- Location Areas
/location-area/{id or name}/
- Pal Park Areas
/pal-park-area/{id or name}/
- Regions
/region/{id or name}/
Machines
- Machines
/machine/{id}/
Moves
- Moves
/move/{id or name}/
- Move Allments
/move-ailment/{id or name}/
- Move Battle Styles
/move-battle-style/{id or name}/
- Move Categories
/move-category/{id or name}/
- Move Damage Classes
/move-damage-class/{id or name}/
- Move Learn Methods
/move-learn-method/{id or name}/
- Move Targets
/move-target/{id or name}/
Pokémon
- Abilities
/ability/{id or name}/
- Characteristics
/characteristic/{id}/
- Egg Groups
/egg-group/{id or name}/
- Genders
/gender/{id or name}/
- Growth Rates
/growth-rate/{id or name}/
- Natures
/nature/{id or name}/
- Pokeathlon Stats
/pokeathlon-stat/{id or name}/
- Pokemon
/pokemon/{id or name}/
- Pokemon Location Areas
/pokemon/{id or name}/encounters/
- Pokemon Colors
/pokemon-color/{id or name}/
- Pokemon Forms
/pokemon-form/{id or name}/
- Pokemon Habitats
/pokemon-habitat/{id or name}/
- Pokemon Shapes
/pokemon-shape/{id or name}/
- Pokemon Species
/pokemon-species/{id or name}/
- Stats
/stat/{id or name}/
- Types
/type/{id or name}/
Contributing
- Fork it (https://github.com/henrikac/pokeapi/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Henrik Christensen - creator and maintainer
Repository
pokeapi
Owner
Statistic
- 2
- 2
- 0
- 0
- 1
- almost 3 years ago
- May 8, 2021
License
MIT License
Links
Synced at
Thu, 07 Nov 2024 10:22:38 GMT
Languages