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疎通、実機動作は未検証。