フレームワーク実装の照合(2026-10-27)
提供された ese774_frame のソースコード10本を照合した記録です。ネットワーク通信や実機動作の検証結果ではありません。追跡可能性のため、source_reference/ese774_frame/ に照合用コピーを保存しています。
自動ディスパッチの仕様
FastApiServer は FastAPI の lifespan 内でデバイスを生成し、ルータを構築して登録します。api_spec=None の場合は指定された router_cls、未指定なら DeviceRouter を使用します。api_spec が指定されている場合、router_cls が必須です。DOBOT の標準構成は自動ディスパッチ方式です。
DeviceRouter は POST /instance/{object_name}/__dispatch__、GET /instance/{object_name}/__meta__、GET /instance/{object_name}/__property__/{property_name}、PUT /instance/{object_name}/__property__/{property_name} を提供します。自動モードではメソッド別の GET/POST 経路も登録します。ディスパッチ要求のキーは method、args、kwargs のみで、余分なキーは HTTP 422、method がない場合は HTTP 400 です。自動モードではカスタムルータのオーバーライドを優先し、その他はデバイスの公開メンバーに委譲します。非公開メンバーおよび dispatch_exclude 指定名は動的探索から除外されます。
コルーチン関数は await され、同期関数は直接呼び出されます。したがって長時間実行される同期処理は要求処理をブロックする可能性があり、このコードだけではロボットコマンドの並列実行の安全性や非ブロッキング性は保証できません。明示的な HTTP 例外以外は HTTP 500 に変換されます。終了時は disconnect() が呼び出し可能なら実行されます。HTTP応答の完了をロボットの移動完了と同一視してはいけません。
DeviceProxy は明示的な登録表に従って同期・非同期クライアントを選択します。登録されたクライアントクラスがない場合はフレームワークのクライアントにフォールバックします。async_mode=None は登録時の default_async_mode(既定値 True)に従い、エイリアスも登録できます。
照合したソース
モジュール |
クラス |
関数定義数(メソッドを含む) |
|---|---|---|
|
FastApiServer |
3 |
|
_BytesJsonEncoder |
17 |
|
DeviceRouter |
21 |
|
— |
2 |
|
ApiSpec |
4 |
|
SyncDeviceClient |
22 |
|
— |
2 |
|
— |
15 |
|
DeviceProxyEntry |
8 |
|
AsyncDeviceClient |
19 |
検証範囲
AST構文検査と文書内リンク検査は構造的な整合性の確認であり、サーバ起動、シリアライズ往復、通信、移動完了、安全機能の実証ではありません。source_reference/ のソースは照合用であり、インストール済みパッケージの置換には使用しません。