ポケポケのAPIをつくる
はじめに
みなさん、ポケポケやっていますか?
コレクション要素の強いカードゲームですが、バトル要素も欠かせません。
現在はカード総数こそ少ないものの、数年先はきっと多くのカードがリリースされていることでしょう。
自分はコレクション要素をメインとしたカジュアル層となりますが、
いつか対戦が楽しめるよう取り組んでいきたいものです。
ただ、公式のデータベースがないため思うように検索ができません(2024/11/12現在)。
凝りにこったWEBサイトではなく、データベースとして作る分には時間がかからないため作成してみることにしました。
構成について
AWSを使用し、APIGateway + Lambda + DynamoDB を使っています。
サーバレスなのも魅力ですが、趣味レベルであれば安いのも財布に優しいのも利点ですね。
ベースURLは以下となります。
クエリ文字列がない場合は、現存するカード全ての結果がjson形式で表示されます。
https://api.pokepoke-tcg.com/v1
仕様書
一般的なAPIのようにフィルタリングが可能です。
また、&を使用することで下記のように更なる絞り込みも行えます。
https://api.pokepoke-tcg.com/v1?stage=たね&ability=true
id
パックナンバーとカード番号
A1(最強の遺伝子)
https://api.pokepoke-tcg.com/v1?id=A1-036
category
ポケモン or トレーナーズ
https://api.pokepoke-tcg.com/v1?category=トレーナーズ
subCategory
グッズ or サポート
https://api.pokepoke-tcg.com/v1?subCategory=サポート
cardRule
現時点ではexのみ
https://api.pokepoke-tcg.com/v1?cardRule=ex
name
exの場合は末尾にexと付ける必要あるので注意
https://api.pokepoke-tcg.com/v1?name=リザードン
evolvesFrom
進化前ポケモンの名前
https://api.pokepoke-tcg.com/v1?evolvesFrom=リザード
stage
たね、1進化、2進化
https://api.pokepoke-tcg.com/v1?stage=2進化
type
草、炎、水、雷、超、闘、悪、鋼、竜、無
https://api.pokepoke-tcg.com/v1?type=竜
weakness
草、炎、水、雷、超、闘、悪、鋼
https://api.pokepoke-tcg.com/v1?weakness=水
moreHp
体力(以上)
https://api.pokepoke-tcg.com/v1?moreHp=150
lessHp
体力(以下)
https://api.pokepoke-tcg.com/v1?lessHp=40
convertedRetreatCost
逃げエネ
https://api.pokepoke-tcg.com/v1?convertedRetreatCost=3
moreConvertedRetreatCost
逃げエネ(以上)
https://api.pokepoke-tcg.com/v1?moreConvertedRetreatCost=3
lessConvertedRetreatCost
逃げエネ(以下)
https://api.pokepoke-tcg.com/v1?lessConvertedRetreatCost=1
cost
一つでも指定したタイプを必要とするワザを持っている
草、炎、水、雷、超、闘、悪、鋼、無
https://api.pokepoke-tcg.com/v1?cost=鋼
ability
true、false
https://api.pokepoke-tcg.com/v1?ability=true
damage
指定したダメージを持つワザを一つでも持っている
https://api.pokepoke-tcg.com/v1?damage=200
moreDamage
指定したダメージ以上を持つワザを一つでも持っている
https://api.pokepoke-tcg.com/v1?moreDamage=100
lessDamage
指定したダメージ以下を持つワザを一つでも持っている
https://api.pokepoke-tcg.com/v1?lessDamage=10
convertedEnergyCost
指定したコストを持つワザを一つでも持っている
https://api.pokepoke-tcg.com/v1?convertedEnergyCost=3
moreConvertedEnergyCost
指定したコスト以上を持つワザを一つでも持っている
https://api.pokepoke-tcg.com/v1?moreConvertedEnergyCost=3
lessConvertedEnergyCost
指定したコスト以下を持つワザを一つでも持っている
https://api.pokepoke-tcg.com/v1?lessConvertedEnergyCost=1
tags
退却、手札干渉、山札干渉、回復、ドロー、エネルギー操作、エネルギー加速、化石、ダメージ加算、ボール、逃げエネ軽減、指令
https://api.pokepoke-tcg.com/v1?tags=退却
rarity
♢ 1 ~ 4 、☆ 5 ~ 7、王冠 8、プロモ(レアリティなし) 0
https://api.pokepoke-tcg.com/v1?rarity=4
moreRarity
レアリティ(以上)
https://api.pokepoke-tcg.com/v1?moreRarity=7
lessRarity
レアリティ(以下)
https://api.pokepoke-tcg.com/v1?lessRarity=2
さいごに
思ったよりもスムーズに作ることができました。
頭の中での構想が、そのまま実現した結果かと思います。
ただ、これアップデートが割と大変なんですよね……
のんびりマイペースでやっていこうと思います。
ちなみにこういった記事を外部へ公開するのは初です。
読みにくいところがあるかもしれませんが、都度改善していければよいですね。