ボット独自のデータベースを使用する
ボット独自のデータベースは、HTTP通信をベースとしたサーバーです。
このサーバーをバックアップ先のサーバーとして使用するには、まずサーバーを構築する必要があります。
構築
サーバーの構築は、以下に示すAPI仕様に従って作るだけであるため、任意の言語で実装することができます。
API仕様
APIサーバーのエンドポイントはひとつで、クエリパラメーターもしくはリクエストボディのjsonデータによって動作を変えるようになっている必要があります。
GET (type=j)
各サーバーのステータス情報を返却します
リクエストクエリ:
?type=j&token={token}&guildid={guildid}
{token}
:process.env.GAS_TOKEN
に指定したトークン。これにより認証します。)
{guildid}
: 要求するサーバーIDをカンマで連結したリスト(ex. 111111111111,22222222222,3333333333333)
レスポンス: トークンが一致すればデータベースに存在する各サーバーのJSONデータを返却します
例:
{"status": 200, "data": {"サーバーID": "文字列化したステータス情報", ...}}
失敗した場合は、ステータスコードだけのオブジェクトを返します。
{"status": 400}
GET (type=queue)
文字列化した各サーバーのキューを返却します
リクエストクエリ:
?type=queue&token={token}&guildid={guildid}
{token}
:process.env.GAS_TOKEN
に指定したトークン。これにより認証します。)
{guildid}
: 要求するサーバーIDをカンマで連結したリスト(ex. 111111111111,22222222222,3333333333333)
レスポンス: トークンが一致すればデータベースに存在する各サーバーのJSONデータを返却します 例:
{"status": 200, "data": {"サーバーID": "文字列化したキュー", ...}}
失敗した場合は、ステータスコードだけのオブジェクトを返します。
{"status": 400}
POST (type=j)
データベースに文字列化した各サーバーのステータス情報を登録します。または既に存在する場合は更新します。
リクエストペイロード(JSON):
{
"token": "{token}",
"type": "j",
"guildid": "{guildid}",
"data": "{data}"
}
{token}
:process.env.GAS_TOKEN
に指定したトークン。これにより認証します。)
{guildid}
: {data}に含まれるステータス情報のサーバーIDをカンマで連結したリスト
{data}
: 以下のようなJSONを文字列化した文字列{"サーバーID": "文字列化したステータス情報", ...}
レスポンス: トークンが一致すればデータベースを更新し、成功すれば、以下のようなJSONを返す
{"status": 200}