You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pokémon forms have their own table however it is rarely and incorrectly used, many Pokémon with multiple forms don't have them associated on the table and are missing data, on the other hand many of the tables that reference Pokémon (such as encounters) sometimes need to point to a specific form, to this end the API started logging alternate forms from id 10001, as such the endpoint https://pokeapi.co/api/v2/pokemon/10001/ and onwards contains information for Pokémon in some particular configuration and the pokemon_forms table has been largely ignored, this has brought many problems however, as it has created many inconsistencies that have plagued users of the API that tried to interact with this data.
Another inconsistency is that although the endpoint https://pokeapi.co/api/v2/pokemon/10016/ belongs to blue-striped-basculin https://pokeapi.co/api/v2/pokemon-form/10016/ belongs to Unown Q and none of the Unown forms have a counterpart in the pokemon table.
What's more, many of these alternate forms have a huge amount of missing data, for example the unown forms are only associated to the gold-silver version-group, when it should have every version-group since G/S.
All of these issue create a confusing experience for any PokeAPI user and should be remedied.
Fix
I suggest
Scrapping the pokemon_form table and replacing it with a simple association table between an entry in the pokemon table and a number of forms it possesses also in the pokemon table (plus maybe some metadata), using the IDs from 10001 onward for the alternate forms.
Removing form specificity from the original pokemon entry (for example the name of https://pokeapi.co/api/v2/pokemon/550/ should read basculin as opposed to basculin-red-striped, making it form neutral).
Standarizing sprites, sprites versions and icons to the same ID as the pokemon in the pokemon table.
Reordering the pokemon table form 10001 onward to be in the alternate forms of the national dex (starting with Unown A and moving forward).
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The need to overhaul Pokémon forms
Pokémon forms have their own table however it is rarely and incorrectly used, many Pokémon with multiple forms don't have them associated on the table and are missing data, on the other hand many of the tables that reference Pokémon (such as encounters) sometimes need to point to a specific form, to this end the API started logging alternate forms from id 10001, as such the endpoint https://pokeapi.co/api/v2/pokemon/10001/ and onwards contains information for Pokémon in some particular configuration and the pokemon_forms table has been largely ignored, this has brought many problems however, as it has created many inconsistencies that have plagued users of the API that tried to interact with this data.
Examples of inconsistencies
Basculin (550) has two forms: Red striped and blue striped, if you go to it's endpoint https://pokeapi.co/api/v2/pokemon/550/ you'll see under pokemon_forms it only has one linked, red_striped, in fact the endpoint itself lists the entire pokémon as being called basculin-red-striped and the blue-striped variant is nowhere to be found, it's pokemon form entry exists at https://pokeapi.co/api/v2/pokemon-form/10066/ and its listed pokemon is itself in the pokemon table, but under a different ID https://pokeapi.co/api/v2/pokemon/10016/ this inconsistency extends to many fields, for example, if you were to look for the sprites of this pokemon you'll find these URLs:
back_default: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/550-blue-striped.png
back_shiny: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/550-blue-striped.png
front_default: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10016.png
front_shiny: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/550-blue-striped.png
Other sprites from across versions and the icon for the mon are similarly
inconsistent and needlessly confusing.
Another inconsistency is that although the endpoint https://pokeapi.co/api/v2/pokemon/10016/ belongs to blue-striped-basculin https://pokeapi.co/api/v2/pokemon-form/10016/ belongs to Unown Q and none of the Unown forms have a counterpart in the pokemon table.
What's more, many of these alternate forms have a huge amount of missing data, for example the unown forms are only associated to the gold-silver version-group, when it should have every version-group since G/S.
All of these issue create a confusing experience for any PokeAPI user and should be remedied.
Fix
I suggest
Beta Was this translation helpful? Give feedback.
All reactions