PokeAPI叩いてみた

PokeAPI叩いてみた

投稿日: 2024年10月28日

Tips
要約
  • ポケモンのAPIを利用して、ユーザー登録時の合言葉をポケモンの名前から生成する計画を立てた。
  • 参加イベント時にランダムなポケモンIDを生成し、日本語の名前が確実に取得できるよう実装する予定。
  • ドキュメントが英語で難解だが、成功すればコードを共有するつもり。

はじめに

前回のwebhookイベントオブジェクトの型が出来て、バックエンドを書いていたのですが、処理を書こうと思ったらユーザー登録(lineグループ登録)をしなきゃいけないのですが、そこで合言葉が必要で本当なら管理画面からユーザー登録するときに私が考えて登録するつもりだったんですが、参加イベント発火時にユーザー登録をして、ページの用意が出来た状態でURLをメッセージで返信したいなと思いました。

そうすると返信するまでの間に合言葉の登録が必要になるので自動生成する必要があります。

なんか変なパスワードみたいな文字列にしたくないので、真剣に考えてポケモンのAPI使ってみようと思いました。

早速叩いてみる

PokéAPIはオープンAPIなので認証情報等も必要なくすぐ叩けますので、実装方法考えるためにPOSTMAN使っていきました。

超簡単です。

https://pokeapi.co/api/v2/pokemon

にGETリクエスト投げたら終わりですが、レスポンスをみると取得出来ているのが20件だけで、全部で1302件あるようです。

これ増え続けるんでしょうね・・ポケモン凄い・・

連番なのか気になるので全部取得したいと思います。

全体の件数が分かったので、

https://pokeapi.co/api/v2/pokemon?limit=1302

クエリパラメータに?limit=1302を付けてリクエストしなおしました。

連番じゃなかった・・・

1025の次が10001になっています。

なんでなのかはわからないですが名前もなんか変わっていますね・・

アローラの姿とか真夜中の姿とかありますよね、そんなん関係しているかんじですかね(適当に言ってます)

ここで気づく、英語だこれ。日本語がいい。。。

ってことで調べると、別のエンドポイントがあって

https://pokeapi.co/api/v2/pokemon-species/

これ叩いてみました。

件数が違う・・!しかも連番でしたこちらは。

こちら使った方が良さそうです。

今度は個別のポケモンの情報を取得してみます。

https://pokeapi.co/api/v2/pokemon-species/1

いろんな言語混じってる感じですね・・

ありました、names!!!!

ポケモンID一番はフシギダネなんですね!!!ピカチュウじゃないんだ~ビックリ!!

とりあえずポケモンの名前は取得できることが分かったので、これらを使ってポケモンの名前を合言葉にできるように実装していきたいと思います。

今後の方針

LINEからwebhookで受け取ったイベントタイプが「参加イベント(join)」だった時の処理。

  1. ランダムに1~1025の数字を生成
  2. https://pokeapi.co/api/v2/pokemon-species/{生成したID}にGETリクエスト
  3. レスポンス.namesからlanguage.name==="ja-Hrkt"をfindする
  4. ないはずだけど、万が一見つからなかったら数字生成するところからやり直し。
  5. 最後にnameを合言葉にしてUser登録して、LINEの返信を行う。

こんな流れで実装していこうかなと思います。

おわりに

本当にリアルタイムで初めて試しながら書いてみました。

ドキュメントは英語でめちゃくちゃ読みにくいです。

これから実装したらコードも共有していこうと思います。

でも1025件って、合言葉にしては試していけばどこかで必ずあたるから微妙かもって思いました。

・・・まぁいいか。

シェア!

Threads
user
吉本茜
山口在住/二児の母/育休中
記事一覧に戻る
Threads
0