📈

マイクラ鯖の情報を取得できるwebAPIを作った

2024/02/25に公開

開発経緯

Pythonでapiってどうやって作るんだろうってなったので試しに作ってみただけです。
阿波連さんを見てたら一瞬で開発終わった。

作ったもの

curl https://mcapi.ziaenso.me/status?address=<サーバーアドレス>&port=<ポート>

で呼び出せます。
address=でアドレス又はIPを指定します。これは必須。
port=でポートを指定します。25565番の場合は必要ないです。
jsonで帰ってきます。
ハイピクセルでやってみるよ。あとcurlだとjsonが見にくいのでブラウザでやりました。

https://mcapi.ziaenso.me/status?address=play.hypixel.net

レスポンスはこれ。

{
  "latency": 345.0846040000215,
  "max_players": 200000,
  "motd": "                \u00a7aHypixel Network \u00a7c[1.8-1.20]\n  \u00a7d\u00a7lSKYBLOCK 0.19.11 \u00a77| \u00a7b\u00a7lBEDWARS SLUMBER HOTEL",
  "online": true,
  "players_online": 43184,
  "version": "Requires MC 1.8 / 1.20"
}

latencyはサーバーのpingです。max_playersは最大参加人数、motdはMOTDだよ。
onlineはbool値でtrueならオンラインです。players_onlineは参加中のプレイヤー数、
versionはサーバーのバージョンです。

使ったもの

Python+Flask+mcstatusです。
そして実行にはGoogleAppEngineを使用しています。なぜかリージョンを台湾にしちゃったので若干レスポンス悪い。

作ってみて

「なんでこんなの作ったんだ??」となりましたかね。でもFlaskを使ったAPIの作成を学ぶといった点では良かったのかも。
あとはGoogleCloudを使ったりしたのでなんかプロっぽいって。無料枠が充実しているので助かっています。

Discussion