この提案では、外部クライアント(例えばグラフィカルなWebUIなど)がADAMANT MessengerやTelegramに頼らずにトレードボットを監視および制御できるようにするオプションのBot API v1を導入します。このアーキテクチャでは、WebUIはボットAPIとのみ通信を行い、ティッカー、注文帳、取引、OHLC、アカウント状態、取引パラメーター、コマンド実行といった市場データに関してボットが真の唯一の情報源となるようにします。
このAPIは、設定内のprivate_webuiポートを利用して、ボット上にオプションの受信HTTPおよびWebSocketインターフェイスを提供することを目的としています。認証は、private_webui_secret_keyを使用してボット側で検証されるJWTによって処理され、ユーザーのアカウントは外部クライアント側に保持されます。APIは、市場データ、アカウント、パラメーターデータ用の構造化されたJSONエンドポイントとコマンドラッパーを公開します。GET /botエンドポイントはブートストラップとして機能し、インストール済みのmm_*.jsモジュールや取引所の機能フラグといった機能情報を返します。リアルタイムでの取引パラメーター変更には、WebSocketのparams:updatedイベントを利用できます。トランスポートモードは、自己ホスト型クライアント向けのdirectHttpを初期サポート対象とし、サブスクリプションホスティング用のrelayWsは後続の段階で計画されています。
本議論では、支払い、課金、ライセンスUIや特定のWebUI実装の詳細については対象外とします。コミュニティの皆様には、このAPIをオープンソースのadamant-tradebotリポジトリ内にオプションモジュールとして含めるべきかどうか、メッセンジャーコマンドに加えて最小限の有用なクライアントに必要なエンドポイントは何か、v1において市場およびアカウントデータにポーリングとプッシュのどちらが好ましいか、についてのフィードバックを求めます。本議論を参照する追跡用の課題(tracking issue)がadamant-tradebotに作成されます。プレミアムリファレンス実装は現在、adamant-tradebot-meブランチのrefactor/new-webui-apiで進行中です。