ASHIKA Networkドキュメント

API の使い方

ASHIKA Network の API を使うと、お客様パネルでできることの一部を、プログラムから行えます。サーバーの起動・停止・再起動、コンソールへのコマンド送信、ファイルの読み書きができます。

はじめの一歩

  1. APIキーを発行する

    お客様パネルの 「API」 で、名前を付けてキーを発行します。表示されたキー(ashk_ で始まる文字列)を控えてください。もう一度見ることはできません。

  2. サーバーの一覧を取ってみる

    キーを Authorization ヘッダに入れて、サーバーの一覧を取ります。

    bash
    curl https://api.ashikanw.com/v1/servers \
      -H "Authorization: Bearer ashk_ここにキー"

    自分のサーバーの一覧が JSON で返ってくれば成功です。

  3. 操作してみる

    一覧の id(8 文字)を使って、サーバーを再起動してみます。

    bash
    curl -X POST https://api.ashikanw.com/v1/servers/1a2bc34d/power \
      -H "Authorization: Bearer ashk_ここにキー" \
      -H "Content-Type: application/json" \
      -d '{"signal": "restart"}'

できることの全部は API リファレンス に、よくある使い方は 使い方の例 にあります。

URL

どのエンドポイントも、頭は次の URL です。通信は HTTPS だけです。

text
https://api.ashikanw.com/v1

お客様パネルの https://dash.ashikanw.com/api/v1 も、まったく同じものです。

認証

すべてのリクエストに、APIキーを次の形で付けます。

text
Authorization: Bearer ashk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

サーバーの指定

URL の {id} には、サーバーの 8 文字の ID(例: 1a2bc34d)を入れます。パネルのサーバーの URL(dash.ashikanw.com/servers/…)や、サーバー一覧の API の id で分かります。UUID でも指定できます。

応答の形

うまくいったときは、HTTP の状態が 200 で、中身が data に入って返ります。

json
{
  "data": {
    "id": "1a2bc34d",
    "name": "my-bot",
    "status": "RUNNING"
  }
}

ファイルの中身(テキストを読む・ダウンロード)だけは、JSON ではなく中身そのものが返ります。

エラー

うまくいかなかったときは、HTTP の状態が 400 番台か 500 番台で、error に理由が入って返ります。code はプログラムで見分けるための英語の名前、message は人が読むための説明です。

json
{
  "error": {
    "code": "not_running",
    "message": "サーバーが起動していません。"
  }
}
状態codeどんなとき
400invalid_body本文が JSON のオブジェクトになっていない
400missing_path必要な path(または from・to・paths)が無い
400invalid_pathサーバーのフォルダの外を指した、フォルダを読もうとした、ディスクの上限を超える、など
400invalid_signalsignal が start・stop・restart・kill のどれでもない
400invalid_commandcommand が空、長すぎる、改行を含む
401unauthorizedキーが無い、間違っている、消されている
404server_not_foundサーバーが無い、または自分のものではない
404not_foundファイル・フォルダが無い、URL が間違っている
409power_failed起動や停止ができない(期限切れで止められている、準備中など)
409not_readyサーバーの準備がまだ終わっていない
409not_running止まっているサーバーにコマンドを送ろうとした
413too_large送ったファイルが 50MB を超えている
429rate_limited回数の制限を超えた
500internal_errorこちら側の問題。時間をおいて試し、続くようなら Discord でお知らせください

回数の制限

1 つのキーにつき、1 分間に 120 回まで受け付けます。応答のヘッダで、残りの回数が分かります。

ヘッダ内容
X-RateLimit-Limit1 分間に受け付ける回数(120)
X-RateLimit-Remainingこの 1 分間の残りの回数
Retry-After制限を超えたとき(429)だけ。何秒待てばよいか

状態を見張るときは、数秒〜数十秒おきに取れば十分です。

操作の記録

API で行った操作(起動・停止、コマンド、ファイルの書き込み・名前の変更・削除)は、パネルのサーバーの「アクティビティ」に残ります。覚えのない操作があれば、キーを消して作り直してください。

できないこと

今の API では、サーバーの購入・延長・削除、プランの変更、残高のチャージはできません。お金や消えると困るものに関わる操作は、お客様パネルから行ってください。ほしい機能があれば Discord で教えてください。