Skip to content

hanle23/pokego

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PokeGO

API wrapper for Poke API, written in Go. Supports PokeAPI v2. Inspired by PokeAPI-GO

Documentation

All API endpoints is following the official PokeAPI documentation as of October 29, 2024, including all official type.

Getting Started

  • Importing the package
go get github.com/hanle23/pokego
  • Example
client := pokego.NewClient()

pokemon, err := client.Pokemon("pikachu")
if err != nil {
	log.Fatal(err)
}

fmt.Println(pokemon.Name)
  • Initialize a client is required to use the API
client := pokego.NewClient()
  • Client is following singleton pattern, so you can use the same client for all API endpoints
pokemon, err := client.Pokemon("pikachu")
if err != nil {
	log.Fatal(err)
}
  • Client can have custom configuration (except for base URL)
client := pokego.NewClient(
	WithUseCache(false),
	WithExpireTime(5 * time.Minute),
)

Endpoints

Berries

Berries

Berry

Must pass ID or Name (string)

result, err := client.Berry("cheri")

Berries (pagination)

Must pass offset and limit (string)

result, err := client.Berries("0", "20")
Berry Firmnesses

Berry Firmness

Must pass ID or Name (string)

result, err := client.BerryFirmness("very-soft")

Berry Firmness (pagination)

Must pass offset and limit (string)

result, err := client.BerryFirmnesses("0", "20")
Berry Flavors

Berry Flavor

Must pass ID or Name (string)

result, err := client.BerryFlavor("spicy")

Berry Flavors (pagination)

Must pass offset and limit (string)

result, err := client.BerryFlavors("0", "20")

Contests

Contest Types

Contest Types

Must pass ID or Name (string)

result, err := client.ContestType("cool")

Contest Types (pagination)

Must pass offset and limit (string)

result, err := client.ContestTypes("0", "20")
Contest Types

Contest Effect

Must pass ID (string)

result, err := client.ContestEffect("1")

Contest Effects (pagination)

Must pass offset and limit (string)

result, err := client.ContestEffects("0", "20")
Super Contest Effects

Super Contest Effect

Must pass ID (string)

result, err := client.SuperContestEffect("1")

Super Contest Effects (pagination)

Must pass offset and limit (string)

result, err := client.SuperContestEffects("0", "20")

Encounters

Encounter Method

Encounter Method

Must pass ID or Name (string)

result, err := client.EncounterMethod("walk")

Encounter Methods (pagination)

Must pass offset and limit (string)

result, err := client.EncounterMethods("0", "20")
Encounter Conditions

Encounter Condition

Must pass ID or Name (string)

result, err := client.EncounterCondition("swarm")

Encounter Conditions (pagination)

Must pass offset and limit (string)

result, err := client.EncounterConditions("0", "20")
Encounter Condition Values

Encounter Condition Value

Must pass ID or Name (string)

result, err := client.EncounterConditionValue("swarm-yes")

Encounter Condition Values (pagination)

Must pass offset and limit (string)

result, err := client.EncounterConditionValues("0", "20")

Evolution

Evolution Chains

Evolution Chain

Must pass ID (string)

result, err := client.EvolutionChain("1")

Encounter Chains (pagination)

Must pass offset and limit (string)

result, err := client.EvolutionChains("0", "20")
Evolution Triggers

Evolution Trigger

Must pass ID or Name (string)

result, err := client.EvolutionTrigger("level-up")

Encounter Triggers (pagination)

Must pass offset and limit (string)

result, err := client.EvolutionTriggers("0", "20")

Games

Generation

Generation

Must pass ID or Name (string)

result, err := client.Generation("generation-i")

Generations (pagination)

Must pass offset and limit (string)

result, err := client.Generations("0", "20")
Pokedex

Pokedex

Must pass ID or Name (string)

result, err := client.Pokedex("kanto")

Pokedexes (pagination)

Must pass offset and limit (string)

result, err := client.Pokedexes("0", "20")
Version

Version

Must pass ID or Name (string)

result, err := client.Version("red")

Versions (pagination)

Must pass offset and limit (string)

result, err := client.Versions("0", "20")
Version Groups

Version Group

Must pass ID or Name (string)

result, err := client.VersionGroup("red-blue")

Version Groups (pagination)

Must pass offset and limit (string)

result, err := client.VersionGroups("0", "20")

Items

Items

Item

Must pass ID or Name (string)

result, err := client.Item("master-ball")

Items (pagination)

Must pass offset and limit (string)

result, err := client.Items("0", "20")
Item Attributes

Item Attribute

Must pass ID or Name (string)

result, err := client.ItemAttribute("countable")

Item Attributes (pagination)

Must pass offset and limit (string)

result, err := client.ItemAttributes("0", "20")
Item Categories

Item Category

Must pass ID or Name (string)

result, err := client.ItemCategory("stat-boosts")

Item Categories (pagination)

Must pass offset and limit (string)

result, err := client.ItemCategories("0", "20")
Item Fling Effects

Item Fling Effect

Must pass ID or Name (string)

result, err := client.ItemFlingEffect("badly-poison")

Item Fling Effects (pagination)

Must pass offset and limit (string)

result, err := client.ItemFlingEffects("0", "20")
Item Pockets

Item Pocket

Must pass ID or Name (string)

result, err := client.ItemPocket("misc")

Item Pockets (pagination)

Must pass offset and limit (string)

result, err := client.ItemPockets("0", "20")

Locations

Locations

Location

Must pass ID or Name (string)

result, err := client.Location("canalave-city")

Items (pagination)

Must pass offset and limit (string)

result, err := client.Locations("0", "20")
Location Areas

Location Area

Must pass ID or Name (string)

result, err := client.LocationArea("canalave-city-area")

Location Areas (pagination)

Must pass offset and limit (string)

result, err := client.LocationArea("0", "20")
Pal Park Areas

Pal Park Area

Must pass ID or Name (string)

result, err := client.PalParkArea("forest")

Pal Park Areas (pagination)

Must pass offset and limit (string)

result, err := client.LocationArea("0", "20")
Regions

Region

Must pass ID or Name (string)

result, err := client.Region("kanto")

Regions (pagination)

Must pass offset and limit (string)

result, err := client.Regions("0", "20")

Machines

Machines

Machine

Must pass ID or Name (string)

result, err := client.Machine("pound")

Machines (pagination)

Must pass offset and limit (string)

result, err := client.Machines("0", "20")

Moves

Moves

Move

Must pass ID or Name (string)

result, err := client.Move("pound")

Moves (pagination)

Must pass offset and limit (string)

result, err := client.Moves("0", "20")
Move Ailment

Move Ailment

Must pass ID or Name (string)

result, err := client.MoveAilment("paralysis")

Move Ailments (pagination)

Must pass offset and limit (string)

result, err := client.MoveAilments("0", "20")
Move Battle Styles

Move Battle Style

Must pass ID or Name (string)

result, err := client.MoveBattleStyle("attack")

Move Battle Styles (pagination)

Must pass offset and limit (string)

result, err := client.MoveBattleStyles("0", "20")
Move Category

Move Category

Must pass ID or Name (string)

result, err := client.MoveCategory("ailment")

Move Categories (pagination)

Must pass offset and limit (string)

result, err := client.MoveCategories("0", "20")
Move Damage Class

Move Damage Class

Must pass ID or Name (string)

result, err := client.MoveDamageClass("status")

Move Damage Classes (pagination)

Must pass offset and limit (string)

result, err := client.MoveDamageClasses("0", "20")
Move Learn Method

Move Learn Method

Must pass ID or Name (string)

result, err := client.MoveLearnMethod("level-up")

Move Learn Methods (pagination)

Must pass offset and limit (string)

result, err := client.MoveLearnMethods("0", "20")
Move Targets

Move Target

Must pass ID or Name (string)

result, err := client.MoveTarget("specific-move")

Move Targets (pagination)

Must pass offset and limit (string)

result, err := client.MoveTargets("0", "20")

Pokemon

Abilities

Ability

Must pass ID or Name (string)

result, err := client.Ability("stench")

Abilities (pagination)

Must pass offset and limit (string)

result, err := client.Abilities("0", "20")
Characteristics

Characteristic

Must pass ID (string)

result, err := client.Characteristic("1")

Characteristics (pagination)

Must pass offset and limit (string)

result, err := client.Characteristics("0", "20")
Egg Groups

Egg Group

Must pass ID or Name (string)

result, err := client.EggGroup("monster")

Egg Groups (pagination)

Must pass offset and limit (string)

result, err := client.EggGroups("0", "20")
Genders

Gender

Must pass ID or Name (string)

result, err := client.Gender("female")

Genders (pagination)

Must pass offset and limit (string)

result, err := client.Genders("0", "20")
Growth Rates

Growth Rate

Must pass ID or Name (string)

result, err := client.GrowthRate("slow")

Growth Rates (pagination)

Must pass offset and limit (string)

result, err := client.GrowthRates("0", "20")
Natures

Nature

Must pass ID or Name (string)

result, err := client.Nature("bold")

Natures (pagination)

Must pass offset and limit (string)

result, err := client.Natures("0", "20")
Pokeathlon Stats

Pokeathlon Stat

Must pass ID or Name (string)

result, err := client.PokeathlonStat("speed")

Pokeathlon Stats (pagination)

Must pass offset and limit (string)

result, err := client.PokeathlonStats("0", "20")
Pokemons

Pokemons

Must pass ID or Name (string)

result, err := client.Pokemon("clefairy")

Pokemons (pagination)

Must pass offset and limit (string)

result, err := client.Pokemons("0", "20")
Pokemon Location Areas

Pokemon Location Area

Must pass ID or Name (string)

result, err := client.PokemonLocationAreas("clefairy")
Pokemon Colors

Pokemon Color

Must pass ID or Name (string)

result, err := client.PokemonColor("black")

Pokemon Colors (pagination)

Must pass offset and limit (string)

result, err := client.PokemonColors("0", "20")
Pokemon Forms

Pokemon Form

Must pass ID or Name (string)

result, err := client.PokemonForm("arceus-bug")

Pokemon Forms (pagination)

Must pass offset and limit (string)

result, err := client.PokemonForms("0", "20")
Pokemon Habitats

Pokemon Habitat

Must pass ID or Name (string)

result, err := client.PokemonHabitat("cave")

Pokemon Habitats (pagination)

Must pass offset and limit (string)

result, err := client.PokemonHabitats("0", "20")
Pokemon Shapes

Pokemon Shape

Must pass ID or Name (string)

result, err := client.PokemonShape("ball")

Pokemon Shapes (pagination)

Must pass offset and limit (string)

result, err := client.PokemonShapes("0", "20")
Pokemon Species

Pokemon Species

Must pass ID or Name (string)

result, err := client.PokemonSpecies("wormadam")

Pokemon Species Pagination (pagination)

Must pass offset and limit (string)

result, err := client.PokemonSpeciesPagination("0", "20")
Stats

Stat

Must pass ID or Name (string)

result, err := client.Stat("attack")

Stats (pagination)

Must pass offset and limit (string)

result, err := client.Stats("0", "20")
Types

Type

Must pass ID or Name (string)

result, err := client.Type("ground")

Types (pagination)

Must pass offset and limit (string)

result, err := client.Stats("0", "20")

Utility

Languages

Language

Must pass ID or Name (string)

result, err := client.Language("ja")

Languages (pagination)

Must pass offset and limit (string)

result, err := client.Languages("0", "20")

Additional Information

  • Config options is currently unable to change on the fly, if you want to change config setting, make sure to removeClient first and do NewClient
client := pokego.NewClient(
	WithUseCache(false),
	WithExpireTime(5 * time.Minute),
)
RemoveClient()
client = pokego.NewClient(
	WithUseCache(true),
	WithExpireTime(10 * time.Minute),
)
  • If there are some issue with the client, you can also try to Reset the client (keep all currentl config) or remove and recreate
client.ResetClient()
client.RemoveClient()
client = pokego.NewClient()
  • If there is a specific query that you want to make and not available in the package, you can use the Fetch method
result, err := client.Fetch("/berry/1/")
  • Or when you want to get all available endpoints
result, err := client.Fetch("")

About

Wrapper API for PokeAPI in Go

Resources

Stars

Watchers

Forks