2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Palworldに追加されたAPIを叩いてみる

Last updated at Posted at 2024-04-17

はじめに

どうも、 @Keichan_15 です。:bow:

2024年に入ってから記事執筆の頻度が急激に落ちてしまい、焦って齷齪している間にもう4月…。時の流れは残酷ですね。:cold_sweat:

最近の私は以前に紹介したおうちサーバーが本格稼働し始めたことで、cronでPalworldのサーバーを定時で再起動するスクリプトを組んだり、dockerを入れてクラウド運用(fly.io)していたChatGPT-Botをオンプレで稼働させるように変更したり、といったことをちまちまやっておりました。

コスト面においても、気にする点としては電気代だけなので、fly.ioAWSといったクラウドサーバーの従量課金を気にする必要もなくなり、結構ストレスフリーな運用ができています。

ところでそんなこんなしている矢先、Palworldのv0.2.0.6アップデートで正式にAPIが追加されたという情報が!:tada:

今回はこの追加されたAPIを実際に叩いて動作確認をしてみます!

どうも最近RCONの調子が悪いんですよね。3回に1回は再起動に失敗するみたいなことがあったり…。
なので、再起動系もこっちのAPIを叩いてサーバーシャットダウン -> 起動シェルスクリプト実行みたいなのをcronで回せたらいいなあと。

早速やっていきましょう!:walking:

サーバー側の設定でREST APIを有効化する

This is a simple REST API for Palworld.
Need to configuration RESTAPIEnabled=True to use this api.
This api is now experimental.

REST APIを有効化するためには、RESTAPIEnabled=Trueに設定してね。とあります。

もう少し細かく説明すると、ワールドの設定ファイルである PalWorldSettings.ini に存在するRESTAPIEnabledという項目をTrueに設定すれば、REST APIが使用できるようになります。

Linux Serverだと /home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServerの直下に配置されています。

image.png

これで開いているサーバーがREST APIに対応しました。なんて便利なの…。:kissing_heart:

curlで叩いてみる

では早速curlで叩いてみましょう!:joystick:

僕はBASIC認証なるものの仕組みがあまり分かっておらず、Authroizationで弾かれまくる問題に悩まされていたのですが、色々調べていたところ、curlで叩くには admin:[admin_password] で認証ができるとのこと。

ということで、サーバーを開いているUbuntu Server内からcurlコマンドを叩いてみます。

今回は、サーバーに参加しているプレイヤー情報を取得するGet player list.を実行してみます。

terminal
$ curl admin:hoge_password http://localhost:8212/v1/api/players

hoge_passwordの部分はPalWorldSettings.iniで設定している AdminPassword の値を設定してください!

実際に叩いてみた結果はこちら。

image.png

このようにサーバーに参加しているプレイヤーデータを取得することができました。

ちなみに余談ですが、ipの部分はモロ参加しているプレイヤーのグローバルIPアドレスが書いているので少し怖いなあ…と。笑

レスポンスに含めているのはIPアドレス単位でBanを実施する時とかの為に含めているのかな?:thinking:

他にも様々な種類のAPIがあるので、上手く組み合わせればdiscord側から参加者やサーバーシャットダウン等の仕組みを実現できるかもしれませんね!:relaxed:

おわりに

いかがでしたでしょうか。

APIを叩く際の参考資料や情報がほぼ見当たらなかった為、今回こちらの記事執筆に至りました。

  • curlでとりあえずAPI叩いてレスポンス見てみたい!
  • REST APIの設定方法を知りたい!

上記でお困りの方の助けとなれば幸いです!本当に便利ですよ、このAPI!:wrench:

ご覧いただきありがとうございました!:hand_splayed:

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?