FileDescriptor - masaru-takano/DeviceConnect-Spec GitHub Wiki

概要

スマートフォンまたは周辺機器から他方のスマートデバイスに対してのファイルディスクリプタ操作機能を提供するAPI。

目次

API 概要
PUT /gotapi/fileDescriptor/close スマートデバイスのファイルを閉じるように要求する。
GET /gotapi/fileDescriptor/onWatchFile スマートデバイスのファイルの更新時間が変化したことを取得する。
PUT /gotapi/fileDescriptor/onWatchFile スマートデバイスのファイルの更新時間が変化したことを通知するイベントを登録する。
DELETE /gotapi/fileDescriptor/onWatchFile スマートデバイスのファイルの更新時間が変化したことを通知するイベントを登録解除する。
GET /gotapi/fileDescriptor/open スマートデバイスのファイルを開くように要求する。
GET /gotapi/fileDescriptor/read スマートデバイスのファイルを指定したサイズ分取得する。
PUT /gotapi/fileDescriptor/write スマートデバイスのファイルへの書き込みを要求する。

種別

one-shot

概要

スマートデバイスのファイルを閉じるように要求する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス
path string Yes ファイルパス。ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。

レスポンス

物理名 データ型 必須 説明
result integer Yes 処理結果
0: 正常応答
0以外: 異常応答
product string Yes DeviceConnectシステムの名前
version string Yes DeviceConnectシステムのバージョン名
hmac string No レスポンスに対する署名
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0"
}

種別

one-shot

概要

スマートデバイスのファイルの更新時間が変化したことを取得する。

プラグイン側でキャッシュしている最新のイベントメッセージを1つ取得する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス

レスポンス

物理名 データ型 必須 説明
result integer Yes 処理結果
0: 正常応答
0以外: 異常応答
product string Yes DeviceConnectシステムの名前
version string Yes DeviceConnectシステムのバージョン名
hmac string No レスポンスに対する署名
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0",
  "file" : {
    "path" : "Test1.png",
    "curr" : "2017-01-01T12:34:56+0900",
    "prev" : "2017-01-01T01:23:45+0900"
  }
}

種別

event

概要

スマートデバイスのファイルの更新時間が変化したことを通知するイベントを登録する。

スマートデバイスのファイルへの書き込みが発生した時にイベントが発行される。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス
interval long No デバイスプラグインがイベントを送信する間隔。

レスポンス

物理名 データ型 必須 説明
result integer Yes 処理結果
0: 正常応答
0以外: 異常応答
product string Yes DeviceConnectシステムの名前
version string Yes DeviceConnectシステムのバージョン名
hmac string No レスポンスに対する署名
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0"
}

イベント

物理名 データ型 必須 説明
attribute string Yes アトリビュート名。
serviceId string Yes 0:正常応答
0以外:異常応答
interface string Yes インターフェース名。
profile string Yes プロファイル名。

イベントサンプル

{
  "serviceId" : "Host.dummyId.localhost.deviceconnect.org",
  "profile" : "filedescriptor",
  "attribute" : "onwatchfile",
  "file" : {
    "path" : "/dir/file1.txt",
    "curr" : "2014-05-02 T10:32:10+0900",
    "prev" : "2014-05-01 T10:32:10+0900"
  }
}

種別

event

概要

スマートデバイスのファイルの更新時間が変化したことを通知するイベントを登録解除する。

スマートデバイスのファイルへの書き込みが発生した時にイベントが発行される。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス

レスポンス

物理名 データ型 必須 説明
result integer Yes 処理結果
0: 正常応答
0以外: 異常応答
product string Yes DeviceConnectシステムの名前
version string Yes DeviceConnectシステムのバージョン名
hmac string No レスポンスに対する署名
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0"
}

種別

one-shot

概要

スマートデバイスのファイルを開くように要求する。

ここで使用するpathは、File APIで取得できる。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス
path string Yes ファイルパス。ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。
flag string Yes フラグ。r : 読み込みのみ
rw : 読み込み&書き込み

レスポンス

物理名 データ型 必須 説明
result integer Yes 処理結果
0: 正常応答
0以外: 異常応答
product string Yes DeviceConnectシステムの名前
version string Yes DeviceConnectシステムのバージョン名
hmac string No レスポンスに対する署名
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0"
}

種別

one-shot

概要

スマートデバイスのファイルを指定したサイズ分取得する。

スマートデバイスのファイルが読み込み完了していない場合には、再度このAPIを呼び出して取得を行う。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス
path string Yes ファイルパス。ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。
length long Yes 読み込みサイズ。一度の読み込みで取得する最大サイズ。length > 0
position long No 読み込み開始位置。読み込みファイルの開始位置を指定する。省略された場合には、現在ファイルが読み込んでいる位置から読み込む。position >= 0

レスポンス

物理名 データ型 必須 説明
result integer Yes 処理結果
0: 正常応答
0以外: 異常応答
product string Yes DeviceConnectシステムの名前
size integer Yes データサイズ
読み込んだデータのサイズ
version string Yes DeviceConnectシステムのバージョン名
hmac string No レスポンスに対する署名
アプリケーション側から事前にHMACキーを共有されていた場合は必須。
fileData string Yes データ
読み込んだデータをdata URI schemeの形式で設定する

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0",
  "size" : 100,
  "fileData" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
}

種別

one-shot

概要

スマートデバイスのファイルへの書き込みを要求する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス
path string Yes ファイルパス。ファイルが存在するパス。ルートはデバイスプラグインごとに異なる。ディレクトリを指定した場合はエラーを返す。
uri string No URI。dataと同時に省略することはできない。両方指定した場合はdataが優先され、uriは無視される。
data file No ファイルのbinary。送信するファイルのbinary。uriと同時に省略することはできない。両方指定した場合はdataが優先され、uriは無視される。
position long No ファイルオフセット。ファイルの書き込み開始位置を指定する。省略された場合には、現在ファイルが書き込んでいる位置から書き込む。

レスポンス

物理名 データ型 必須 説明
result integer Yes 処理結果
0: 正常応答
0以外: 異常応答
product string Yes DeviceConnectシステムの名前
version string Yes DeviceConnectシステムのバージョン名
hmac string No レスポンスに対する署名
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0"
}
⚠️ **GitHub.com Fallback** ⚠️