はじめに
どうもポケモン廃人です。ポケモンSV、DLCの配信日も決まり楽しみですね。
ポケモンに関するデータをいろいろ取得できるPokeAPI
( https://pokeapi.co/ )というものがあることを知ったのですが、公式ドキュメントを眺めたところ、取れるデータが予想以上に豊富でした。
技やアイテムなど、とにかくポケモンのゲームに関する情報は基本的になんでも取得できそうな印象です。
ドキュメントが非常に長い&英語版ということで、今回はポケモン自体のデータに絞って、どんな情報を取得できるのか簡単にまとめていこうと思います。
APIドキュメント:
実行API
PokeAPI
には多くの形式のAPIが存在するのですが、今回は
GET https://pokeapi.co/api/v2/pokemon/{id or name}/
に限定します。
任意のポケモンのid(基本的には全国図鑑番号ですが後述します)か英語名(小文字表記)を指定して実行すると、そのポケモンに関する詳細データが返ってきます。
取得データ
取得される項目は、全部で18項目あります。
以下、API実行時の検索対象のポケモンのことを、「対象ポケモン」と表記します。
id
対象ポケモンの識別子。
基本的には全国図鑑の番号(フシギダネの場合は1)になってそうでしたが、メガシンカやリージョンフォルムを持つポケモンは別途idが存在しています。
軽く調べた例としては、
id:10041
がメガギャラドス、id:10103
がアローラロコン
となっておりました。
GET https://pokeapi.co/api/v2/pokemon-species/{id or name}/
で対象ポケモンの全フォルムのIDを取得できるので、複数のフォルムを持つポケモンのデータを取得する際は、先にIDを確認する必要がありそうです。
参考:https://pokeapi.co/docs/v2#pokemon-species
name
対象ポケモンの英語名。
日本語に置換するためには別途処理が必要そうです。詳細は省きますが、
GET https://pokeapi.co/api/v2/pokemon-species/{id or name}/
で各言語でのポケモン名を取得できるので、こちらのAPIの出力と組み合わせれば可能そうです。
参考:https://pokeapi.co/docs/v2#pokemon-species
追記
別記事にて、日本語名を取得する具体的な実装を行いました。
base_experience
対象ポケモンを倒すことで得られる経験値。
height
対象ポケモンの身長(高さ)。
is_default
対象ポケモンがデフォルの姿であるかどうか。
メガシンカやリージョンフォルムのポケモンを検索対象にするとfalse
が返ってきます。
order
(若干あやふやですが、)対象ポケモンのメガシンカやリージョンフォルムも含めた全国図鑑上の表示順序。
例として、ギャラドスは211
で、メガギャラドスは212
となります。
weight
対象ポケモンの重さ。
abilities
対象ポケモンの特性の一覧。
forms
ここだけ分からず...もし何を指しているか分かる方がおりましたら、教えていただけると助かります。
game_indices
対象ポケモンが登場するゲーム(ルビー、ダイヤモンドなど)と、そのゲーム内でのインデックス(=恐らく図鑑の表示順序)の一覧。
held_items
対象ポケモンと野生で遭遇した時に持っている可能性のあるアイテムの一覧。
location_area_encounters
対象ポケモンに遭遇できる場所(のリンク)。
moves
対象ポケモンが覚えることができる技の一覧。
past_types
対象ポケモンが過去世代で持っていたタイプの一覧。
例えば、ピクシーを指定するとnormalの出力が存在します(現在はフェアリータイプ)。
sprites
対象ポケモンの画像へのアクセスURL。
species
対象ポケモンの種族(図鑑データ?)に関する情報(のリンク)。
stats
対象ポケモンの種族値。
types
対象ポケモンのタイプ。
最後に
内容説明があやふやな項目もあり恐縮ですが、PokeAPI
の取得データについてざっとまとめてみました。
訂正依頼等ございましたら、遠慮なくコメントください。
各ポケモンについて詳細なデータを取得できるので、このAPIを使っていろいろ遊べそうですね。今度何か作ってみようかと思います。
以上