FastAPI実装のソースコード照合(2026-10-27)
追加提供された server_fastapi のPythonファイル5本を対象に確認した。ese774_frame 内部の動作を推測したものではない。照合したソースの写しはZIP内の source_reference/server_fastapi/ に保存した。これは確認用資料であり、ドキュメントのビルド時にインストール・配布される実装ではない。
ソースコードから確認できる構成
server.pyはimport時にFastApiServerを生成する。device_cls=DobotCtrl、router_cls=None、api_spec=None、object_name="dobot"を指定し、device_kwargsはConfigから取得する。server.run()はif __name__ == "__main__"の内側にある。SyncDobotClientとAsyncDobotClientは、それぞれSyncDeviceClientとAsyncDeviceClientを継承する。いずれもobject_name="dobot"、api_spec=Noneを基底クラスに渡す。server_fastapi/__init__.pyはDeviceProxyをDobotCtrlと別名dobotで登録し、デフォルトを非同期モードにする。登録処理はimport時に実行される。make_pyi.pyはDobotCtrlを元に、ese774_frameのヘルパーを用いてclient_async.pyi、client_sync.pyi、__init__.pyiを生成する。
設定・利用上の制約
両クライアントは
config、server_ip、server_portを受け付ける。configを指定すると、そのSERVER_IPとSERVER_PORTが個別引数より優先される。両方省略するとhttp://None:Noneを組み立てるため、コンストラクタだけでは接続可能な既定値にならない。SERVER_IPはHTTPサーバーの待受アドレス、DOBOT_IPはロボットコントローラのアドレス。既定の127.0.0.1はループバックのみ。提供された
server.pyはConfig.load_yaml()を呼ばない。YAMLを利用する場合、同一プロセスでサーバー生成前に設定を読み込む必要がある。認証、認可、TLS、リトライ、応答スキーマ、例外の変換は、今回のファイルだけでは断定できない。使用する
ese774_frameのバージョンと実動作の検証が必要。DeviceProxyの非同期モードはクライアント呼び出しの形態であり、ロボットの移動完了を保証しない。
検証範囲
AST構文、継承関係、コンストラクタ引数、登録パラメータはソースで確認した。一方、このZIPは実行可能な src/dobot 全体とフレームワーク実体を含まないため、Sphinxのimportを伴うautodoc、HTTP疎通、実機動作は未検証。