pokeapi

package module
v1.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2022 License: MIT Imports: 8 Imported by: 0

README

pokeapi-go

Actions Release Codecov Go Report Card GoDoc License

Wrapper for Poke API, written in Go. Supports PokeAPI v2.

Documentation

Full API documentation can be found at Poke API.

Getting Started

go get github.com/EssGeeEich/pokeapi-go
import "github.com/EssGeeEich/pokeapi-go"

Endpoints

Berries
Berries
Get Berries
b := pokeapi.Resource("berry")
Get Berry

Must pass an ID (e.g. "1") or name (e.g. "cheri").

b := pokeapi.Berry("cheri")
Berry Firmness
Get Berry Firmnesses
b := pokeapi.Resource("berry-firmness")
Get Berry Firmness

Must pass an ID (e.g. "1") or name (e.g. "very-soft").

b := pokeapi.BerryFirmness("very-soft")
Berry Flavors
Get Berry Flavors
b := pokeapi.Resource("berry-flavor")
Get Berry Flavor

Must pass an ID (e.g. "1") or name (e.g. "spicy").

b := pokeapi.BerryFlavor("spicy")
Contests
Contest Types
Get Contest Types
c := pokeapi.Resource("berry")
Get Contest Type

Must pass an ID (e.g. "1") or name (e.g. "cool").

c := pokeapi.ContestType("cool")
Contest Effects
Get Contest Effects
c := pokeapi.Resource("contest-effect")
Get Contest Effect

Must pass an ID (e.g. "1").

c := pokeapi.ContestEffect("1")
Super Contest Effects
Get Super Contest Effects
c := pokeapi.Resource("super-contest-effect")
Get Super Contest Effect

Must pass an ID (e.g. "1").

c := pokeapi.SuperContestEffect("1")
Encounters
Encounter Methods
Get Encounter Methods
e := pokeapi.Resource("encounter-method")
Get Encounter Method

Must pass an ID (e.g. "1") or name (e.g. "walk").

e := pokeapi.EncounterMethod("walk")
Encounter Conditions
Get Encounter Conditions
e := pokeapi.Resource("encounter-condition")
Get Encounter Condition

Must pass an ID (e.g. "1") or name (e.g. "swarm").

e := pokeapi.EncounterCondition("swarm")
Encounter Condition Values
Get Encounter Condition Values
e := pokeapi.Resource("encounter-condition-value")
Get Encounter Condition Value

Must pass an ID (e.g. "1") or name (e.g. "swarm-yes").

e := pokeapi.EncounterConditionValue("swarm-yes")
Evolution
Evolution Chains
Get Evolution Chains
e := pokeapi.Resource("evolution-chain")
Get Evolution Chain

Must pass an ID (e.g. "1").

e := pokeapi.EvolutionChain("1")
Evolution Triggers
Get Evolution Triggers
e := pokeapi.Resource("evolution-trigger")
Get Evolution Trigger

Must pass an ID (e.g. "1") or name (e.g. "level-up").

e := pokeapi.EvolutionTrigger("level-up")
Games
Generations
Get Generations
g := pokeapi.Resource("generation")
Get Generation

Must pass an ID (e.g. "1") or name (e.g. "generation-i").

g := pokeapi.Generation("generation-i")
Pokedex
Get All Pokedex
g := pokeapi.Resource("pokedex")
Get Single Pokedex

Must pass an ID (e.g. "1") or name (e.g. "national").

g := pokeapi.Pokedex("national")
Versions
Get Versions
g := pokeapi.Resource("version")
Get Version

Must pass an ID (e.g. "1") or name (e.g. "red").

g := pokeapi.Version("red")
Version Groups
Get Version Groups
g := pokeapi.Resource("version-group")
Get Version Group

Must pass an ID (e.g. "1") or name (e.g. "red-blue").

g := pokeapi.VersionGroup("red-blue")
Items
Items
Get Items
i := pokeapi.Resource("item")
Get Item

Must pass an ID (e.g. "1") or name (e.g. "master-ball").

i := pokeapi.Item("master-ball")
Item Attributes
Get Item Attributes
i := pokeapi.Resource("item-attribute")
Get Item Attribute

Must pass an ID (e.g. "1") or name (e.g. "countable").

i := pokeapi.ItemAttribute("countable")
Item Categories
Get Item Ctegories
i := pokeapi.Resource("item-category")
Get Item Category

Must pass an ID (e.g. "1") or name (e.g. "stat-boosts").

i := pokeapi.ItemCategory("stat-boosts")
Item Fling Effects
Get Item Fling Effects
i := pokeapi.Resource("item-fling-effect")
Get Item Fling Effect

Must pass an ID (e.g. "1") or name (e.g. "badly-poison").

i := pokeapi.ItemFlingEffect("badly-poison")
Item Pockets
Get Item Pockets
i := pokeapi.Resource("item-pocket")
Get Item Pocket

Must pass an ID (e.g. "1") or name (e.g. "misc").

i := pokeapi.ItemPocket("misc")
Locations
Locations
Get Locations
l := pokeapi.Resource("location")
Get Location

Must pass an ID (e.g. "1") or name (e.g. "canalave-city").

l := pokeapi.Location("canalave-city")
Location Areas
Get Location Areas
l := pokeapi.Resource("location-area")
Get Location Area

Must pass an ID (e.g. "1") or name (e.g. "canalave-city-area").

l := pokeapi.LocationArea("canalave-city-area")
Pal Park Areas
Get Pal Park Areas
l := pokeapi.Resource("pal-park-area")
Get Pal Park Area

Must pass an ID (e.g. "1") or name (e.g. "forest").

l := pokeapi.PalParkArea("forest")
Regions
Get Regions
l := pokeapi.Resource("region")
Get Region

Must pass an ID (e.g. "1") or name (e.g. "kanto").

l := pokeapi.Region("kanto")
Machines
Machines
Get Machines
m := pokeapi.Resource("machine")
Get Machine

Must pass an ID (e.g. "1").

m := pokeapi.Machine("1")
Moves
Moves
Get Moves
m := pokeapi.Resource("move")
Get Move

Must pass an ID (e.g. "1") or name (e.g. "pound").

m := pokeapi.Move("pound")
Move Ailments
Get Move Ailments
m := pokeapi.Resource("move-ailment")
Get Move Ailment

Must pass an ID (e.g. "1") or name (e.g. "paralysis").

m := pokeapi.MoveAilment("paralysis")
Move Battle Styles
Get Move Battle Styles
m := pokeapi.Resource("move-battle-style")
Get Move Battle Style

Must pass an ID (e.g. "1") or name (e.g. "attack").

m := pokeapi.MoveBattleStyle("attack")
Move Categories
Get Move Categories
m := pokeapi.Resource("move-catgory")
Get Move Category

Must pass an ID (e.g. "1") or name (e.g. "ailment").

m := pokeapi.MoveCategory("ailment")
Move Damage Classes
Get Move Damage Classes
m := pokeapi.Resource("move-damage-class")
Get Move Damage Class

Must pass an ID (e.g. "1") or name (e.g. "status").

m := pokeapi.MoveDamageClass("status")
Move Learn Methods
Get Move Learn Methods
m := pokeapi.Resource("move-learn-method")
Get Move Learn Method

Must pass an ID (e.g. "1") or name (e.g. "level-up").

m := pokeapi.MoveLearnMethod("level-up")
Move Targets
Get Move Targets
m := pokeapi.Resource("move-target")
Get Move Target

Must pass an ID (e.g. "1") or name (e.g. "specific-move").

m := pokeapi.MoveTarget("specific-move")
Pokemon
Abilities
Get Abilities
p := pokeapi.Resource("ability")
Get Ability

Must pass an ID (e.g. "1") or name (e.g. "stench").

p := pokeapi.Ability("stench")
Characteristics
Get Characteristics
p := pokeapi.Resource("characteristic")
Get Characteristic

Must pass an ID (e.g. "1").

p := pokeapi.Characteristic("1")
Egg Groups
Get Egg Groups
p := pokeapi.Resource("egg-group")
Get Egg Group

Must pass an ID (e.g. "1") or name (e.g. "monster").

p := pokeapi.EggGroup("monster")
Genders
Get Genders
p := pokeapi.Resource("gender")
Get Gender

Must pass an ID (e.g. "1") or name (e.g. "female").

p := pokeapi.Gender("female")
Growth Rates
Get Growth Rates
p := pokeapi.Resource("growth-rate")
Get Growth Rate

Must pass an ID (e.g. "1") or name (e.g. "slow").

p := pokeapi.GrowthRate("slow")
Natures
Get Natures
p := pokeapi.Resource("nature")
Get Nature

Must pass an ID (e.g. "1") or name (e.g. "hardy").

p := pokeapi.Nature("hardy")
Pokeathlon Stats
Get Pokeathlon Stats
p := pokeapi.Resource("pokeathlon-stat")
Get Pokeathlon Stat

Must pass an ID (e.g. "1") or name (e.g. "speed").

p := pokeapi.PokeathlonStat("speed")
Pokemon
Get All Pokemon
l := pokeapi.Resource("pokemon")
Get Single Pokemon

Must pass an ID (e.g. "1") or name (e.g. "bulbasaur").

l := pokeapi.Pokemon("bulabsaur")
Pokemon Colors
Get Pokemon Colors
p := pokeapi.Resource("pokemon-color")
Get Pokemon Color

Must pass an ID (e.g. "1") or name (e.g. "black").

p := pokeapi.PokemonColor("black")
Pokemon Forms
Get Pokemon Forms
p := pokeapi.Resource("pokemon-form")
Get Pokemon Form

Must pass an ID (e.g. "1") or name (e.g. "bulbasaur").

p := pokeapi.PokemonForm("bulabsaur")
Pokemon Habitats
Get Pokemon Habitats
p := pokeapi.Resource("pokemon-habitat")
Get Pokemon Habitat

Must pass an ID (e.g. "1") or name (e.g. "cave").

p := pokeapi.PokemonHabitat("cave")
Pokemon Shapes
Get Pokemon Shapes
p := pokeapi.Resource("pokemon-shape")
Get Pokemon Shape

Must pass an ID (e.g. "1") or name (e.g. "ball").

p := pokeapi.PokemonShape("ball")
Pokemon Species
Get All Pokemon Species
p := pokeapi.Resource("pokemon-species")
Get Single Pokemon Species

Must pass an ID (e.g. "1") or name (e.g. "bulbasaur").

p := pokeapi.PokemonSpecies("bulabsaur")
Stats
Get Stats
p := pokeapi.Resource("stat")
Get Stat

Must pass an ID (e.g. "1") or name (e.g. "hp").

p := pokeapi.Stat("hp")
Types
Get Types
p := pokeapi.Resource("type")
Get Type

Must pass an ID (e.g. "1") or name (e.g. "normal").

p := pokeapi.Type("normal")
Utility
Languages
Get Languages
u := pokeapi.Resource("language")
Get Language

Must pass an ID (e.g. "1") or name (e.g. "en").

u := pokeapi.Language("en")

Additional Options

Resource List Parameters

When calling pokeapi.Resource() for any resource list, you can optionally pass up to two integers. The first will be an offset (defaults to zero), and the second will be the limit (defaults two twenty).

Default
r := pokeapi.Resource("pokemon")
fmt.Println(len(r.Results)) // 20
fmt.Println(r.Results[0].Name) // "bulbasaur"
Offset
r := pokeapi.Resource("pokemon", 3)
fmt.Println(len(r.Results)) // 20
fmt.Println(r.Results[0].Name) // "charmander"
Offset and Limit
r := pokeapi.Resource("pokemon", 6, 10)
fmt.Println(len(r.Results)) // 10
fmt.Println(r.Results[0].Name) // "squirtle"
Resource List Filters

As an alternative to pokeapi.Resource(), you can use Search to filter resource lists. Pass the endpoint, followed by the search term. Or pass a string starting with ^ to search for items starting with the search team.

result.Count is updated after the search with the new total (to get the full count, use pokeapi.Resource().

Search
s := pokeapi.Search("pokemon", "saur")
fmt.Println(len(s.Results)) // 4
fmt.Println(s.Results[3].Name) // venusaur-mega
Starts With
s := pokeapi.Search("pokemon", "^a")
fmt.Println(len(s.Results)) // 44
fmt.Println(s.Results[0].Name) // arbok
s := pokeapi.Search("pokemon", "^bulb")
fmt.Println(len(s.Results)) // 1
fmt.Println(s.Results[0].Name) // bulbasaur
Caching

Calls are automatically cached to cut down on API traffic to PokeAPI, with subsequent calls returning local data.

Clearing Cache
// Clear all existing cache entries.
pokeapi.ClearCache()
Custom Expiration

Custom cache expiration remains for all calls until changed or unset.

// Set cache expiration to twenty minutes.
pokeapi.CacheSettings.CustomExpire = 20
// Turn custom expiration back off.
pokeapi.CacheSettings.CustomExpire = 0
Disable Cache

Please be considerate of PokeAPI and be sure to always operate within this requested limits.

As with custom expiration, this setting remains for all calls until changed or unset.

// Disable checking for cached data
pokeapi.CacheSettings.UseCache = false
// Re-enable checking for cached data
pokeapi.CacheSettings.UseCache = true

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CacheSettings = Settings{
	CustomExpire: 0,
	UseCache:     true,
}

Functions

func Ability

func Ability(id string) (result structs.Ability, err error)

Ability returns a single ability (by name or ID).

func Berry

func Berry(id string) (result structs.Berry, err error)

Berry returns a single berry (by name or ID).

func BerryFirmness

func BerryFirmness(id string) (result structs.BerryFirmness, err error)

BerryFirmness returns a single berry firmness (by name or ID).

func BerryFlavor

func BerryFlavor(id string) (result structs.BerryFlavor, err error)

BerryFlavor returns a single berry flavor (by name or ID).

func Characteristic

func Characteristic(id string) (result structs.Characteristic, err error)

Characteristic returns a single characteristic (by ID).

func ClearCache

func ClearCache()

ClearCache clears all cached data.

func ContestEffect

func ContestEffect(id string) (result structs.ContestEffect, err error)

ContestEffect returns a single contest effect (by ID).

func ContestType

func ContestType(id string) (result structs.ContestType, err error)

ContestType returns a single contest type (by name or ID).

func EggGroup

func EggGroup(id string) (result structs.EggGroup, err error)

EggGroup returns a single egg group (by name or ID).

func EncounterCondition

func EncounterCondition(id string) (result structs.EncounterCondition,
	err error)

EncounterCondition returns a single encounter condition (by name or ID).

func EncounterConditionValue

func EncounterConditionValue(id string) (result structs.EncounterConditionValue,
	err error)

EncounterConditionValue returns a single encounter condition value

(by name or ID).

func EncounterMethod

func EncounterMethod(id string) (result structs.EncounterMethod, err error)

EncounterMethod returns a single encounter method (by name or ID).

func EvolutionChain

func EvolutionChain(id string) (result structs.EvolutionChain, err error)

EvolutionChain returns a single evolution chain (by ID).

func EvolutionTrigger

func EvolutionTrigger(id string) (result structs.EvolutionTrigger, err error)

EvolutionTrigger returns a single evolution trigger (by ID or name).

func Gender

func Gender(id string) (result structs.Gender, err error)

Gender returns a single gender (by name or ID).

func Generation

func Generation(id string) (result structs.Generation, err error)

Generation returns a single generation (by name or ID).

func GrowthRate

func GrowthRate(id string) (result structs.GrowthRate, err error)

GrowthRate returns a single growth rate (by name or ID).

func Item

func Item(id string) (result structs.Item, err error)

Item returns a single item (by name or ID).

func ItemAttribute

func ItemAttribute(id string) (result structs.ItemAttribute, err error)

ItemAttribute returns a single item attribute (by name or ID).

func ItemCategory

func ItemCategory(id string) (result structs.ItemCategory, err error)

ItemCategory returns a single item category (by name or ID).

func ItemFlingEffect

func ItemFlingEffect(id string) (result structs.ItemFlingEffect, err error)

ItemFlingEffect returns a single item fling effect (by name or ID).

func ItemPocket

func ItemPocket(id string) (result structs.ItemPocket, err error)

ItemPocket returns a single item pocket (by name or ID).

func Language

func Language(id string) (result structs.Language, err error)

Language returns a single language (by name or ID).

func Location

func Location(id string) (result structs.Location, err error)

Location returns a single location (by name or ID).

func LocationArea

func LocationArea(id string) (result structs.LocationArea, err error)

LocationArea returns a single location area (by name or ID).

func Machine

func Machine(id string) (result structs.Machine, err error)

Machine returns a single machine (by ID).

func Move

func Move(id string) (result structs.Move, err error)

Move returns a single move (by name or ID).

func MoveAilment

func MoveAilment(id string) (result structs.MoveAilment, err error)

MoveAilment returns a single move ailment (by name or ID).

func MoveBattleStyle

func MoveBattleStyle(id string) (result structs.MoveBattleStyle, err error)

MoveBattleStyle returns a single move battle style (by name or ID).

func MoveCategory

func MoveCategory(id string) (result structs.MoveCategory, err error)

MoveCategory returns a single move category (by name or ID).

func MoveDamageClass

func MoveDamageClass(id string) (result structs.MoveDamageClass, err error)

MoveDamageClass returns a single move damage class (by name or ID).

func MoveLearnMethod

func MoveLearnMethod(id string) (result structs.MoveLearnMethod, err error)

MoveLearnMethod returns a single move learn method (by name or ID).

func MoveTarget

func MoveTarget(id string) (result structs.MoveTarget, err error)

MoveTarget returns a single move target (by name or ID).

func Nature

func Nature(id string) (result structs.Nature, err error)

Nature returns a single nature (by name or ID).

func PalParkArea

func PalParkArea(id string) (result structs.PalParkArea, err error)

PalParkArea returns a single Pal Park area (by name or ID).

func PokeathlonStat

func PokeathlonStat(id string) (result structs.PokeathlonStat, err error)

PokeathlonStat returns a single Pokeathlon state (by name or ID).

func Pokedex

func Pokedex(id string) (result structs.Pokedex, err error)

Pokedex returns a single Pokedex (by name or ID).

func Pokemon

func Pokemon(id string) (result structs.Pokemon, err error)

Pokemon returns a single Pokemon (by name or ID).

func PokemonColor

func PokemonColor(id string) (result structs.PokemonColor, err error)

PokemonColor returns a single Pokemon color (by name or ID).

func PokemonForm

func PokemonForm(id string) (result structs.PokemonForm, err error)

PokemonForm returns a single Pokemon form (by name or ID).

func PokemonHabitat

func PokemonHabitat(id string) (result structs.PokemonHabitat, err error)

PokemonHabitat returns a single Pokemon habitat (by name or ID).

func PokemonShape

func PokemonShape(id string) (result structs.PokemonShape, err error)

PokemonShape returns a single Pokemon shape (by name or ID).

func PokemonSpecies

func PokemonSpecies(id string) (result structs.PokemonSpecies, err error)

PokemonSpecies returns a single Pokemon species (by name or ID).

func Region

func Region(id string) (result structs.Region, err error)

Region returns a single region (by name or ID).

func Resource

func Resource(endpoint string, params ...int) (result structs.Resource,
	err error)

Resource returns resource list for an endpoint.

func Search(endpoint string, search string) (result structs.Resource,
	err error)

Search returns resource list, filtered by search term.

func Stat

func Stat(id string) (result structs.Stat, err error)

Stat returns a single stat (by name or ID).

func SuperContestEffect

func SuperContestEffect(id string) (result structs.SuperContestEffect, err error)

SuperContestEffect returns a single super contest effect (by ID).

func Type

func Type(id string) (result structs.Type, err error)

Type returns a single type (by name or ID).

func Version

func Version(id string) (result structs.Version, err error)

Version returns a single version (by name or ID).

func VersionGroup

func VersionGroup(id string) (result structs.VersionGroup, err error)

VersionGroup returns a single version group (by name or ID).

Types

type Settings

type Settings struct {
	CustomExpire time.Duration
	UseCache     bool
}

CacheSettings are user settings for cache expiration.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL