WEB API

FW5のWEB UIに対応した以下のAPIを用意しています。本項は各APIについて解説しています。
各APIは初期セットアップや設定変更等にご使用ください。

info
  • OpenBlocksに搭載している証明書は自己署名証明書です。そのため、HTTPSアクセスを行う場合には"-k"オプションを使用してください。

トークン確認

WEB UI管理者アカウント作成API時の除き、各API操作用トークンはWEB UIのマイページにて確認可能です。

webapi_token

WEB UI管理者アカウント作成API

OpenBlocksが初期状態の場合に管理者アカウントを作成できます。
なお、管理者アカウントが既に存在する場合にはアカウントは作成できません。

  • リクエストURL
http://<IPアドレス>:880/api/v1/initial_setup
または
https://<IPアドレス>:4430/api/v1/initial_setup
  • リクエスト

リクエストメソッドはPOSTです。または、リクエストデータ形式はJSONです。

JSONキー内容
name登録する管理者アカウントのユーザー名
password登録する管理者アカウントのパスワード
  • レスポンス

レスポンスはJSON形式です。
以下は正常時のレスポンスのJSONキーとなります。

JSONキー内容
result実行結果
administrators登録した管理者アカウントのユーザー名
tokenAPI操作に用いるトークン

cURLコマンドでのアクセス例です。

$ curl -X POST -H "Content-type: application/json" 'http://192.168.253.254:880/api/v1/initial_setup' \
-d '{ "name" : "administrator" , "password" : "0BSI0T" }'

OpenBlocks操作API

OpenBlocksの一部操作が行えます。

  • リクエストURL
http://<IPアドレス>:880/api/v1/controlller
または
https://<IPアドレス>:4430/api/v1/controller
  • リクエスト

リクエストメソッドはPOSTです。または、リクエストデータ形式はJSONです。

JSONキー内容
name実行する管理者アカウントのユーザー名
token実行する管理者アカウントのトークン
cmd実行するコマンド内容。以下のみサポートしています。
  • reboot : 再起動
  • online_update : オンラインアップデート
  • install <DEBパッケージ>: オンラインによる対象DEBパッケージのインストール
  • レスポンス

レスポンスはJSON形式です。
以下は正常時のレスポンスのJSONキーとなります。

JSONキー内容
result実行結果

cURLコマンドでのアクセス例です。

$ curl -X POST -H "Content-type: application/json" 'http://192.168.253.254:880/api/v1/controller' \
-d '{ "name" : "administrator" , "token" : "1774027b2a93870b7ebe34570b35d6afef29ca9abbbd5ff1f9a7559e34a10cd9" , "cmd" : "reboot" }'

コンフィグエクスポートAPI

OpenBlocksに搭載しているWEB UIのコンフィグ情報を取得します。

  • リクエストURL
http://<IPアドレス>:880/api/v1/config_export
または
https://<IPアドレス>:4430/api/v1/config_export
  • リクエスト

リクエストメソッドはPOSTです。または、リクエストデータ形式はJSONです。

JSONキー内容
name実行する管理者アカウントのユーザー名
token実行する管理者アカウントのトークン
  • レスポンス

レスポンスはJSON形式です。
以下は正常時のレスポンスのJSONキーとなります。

JSONキー内容
result実行結果
webuiconfOpenBlocksが保持しているWEB UIのconfig情報

cURLコマンドでのアクセス例です。

$ curl -X POST -H "Content-type: application/json" 'http://192.168.253.254:880/api/v1/config_export' \
-d '{ "name" : "administrator" , "token" : "1774027b2a93870b7ebe34570b35d6afef29ca9abbbd5ff1f9a7559e34a10cd9" }'

コンフィグ更新API

OpenBlocksに搭載しているWEB UIのコンフィグをカテゴリ単位で追加し反映を行います。

  • リクエストURL
http://<IPアドレス>:880/api/v1/category_update
または
https://<IPアドレス>:4430/api/v1/category_update
  • リクエスト

リクエストメソッドはPOSTです。または、リクエストデータ形式はJSONです。

JSONキー内容
name実行する管理者アカウントのユーザー名
token実行する管理者アカウントのトークン
webuiconfOpenBlocksに設定を置き換えるWEB UIのconfig情報
  • レスポンス

レスポンスはJSON形式です。
以下は正常時のレスポンスのJSONキーとなります。

JSONキー内容
result実行結果

cURLコマンドでのアクセス例です。

$ curl -X POST -H "Content-type: application/json" 'http://192.168.253.254:880/api/v1/category_update' \
-d '{ \
"name": "administrator", \
"token": "1774027b2a93870b7ebe34570b35d6afef29ca9abbbd5ff1f9a7559e34a10cd9", \
"webuiconf": { \
"network": { \
"hostname": "newhostname" \
} \
} \
}'

コンフィグ置き換えAPI

OpenBlocksに搭載しているWEB UIのコンフィグをカテゴリ単位で置き換えます。

  • リクエストURL
http://<IPアドレス>:880/api/v1/category_replace
または
https://<IPアドレス>:4430/api/v1/category_replace
  • リクエスト

リクエストメソッドはPOSTです。または、リクエストデータ形式はJSONです。

JSONキー内容
name実行する管理者アカウントのユーザー名
token実行する管理者アカウントのトークン
webuiconfOpenBlocksに設定を置き換えるWEB UIのconfig情報
  • レスポンス

レスポンスはJSON形式です。
以下は正常時のレスポンスのJSONキーとなります。

JSONキー内容
result実行結果

cURLコマンドでのアクセス例です。

$ curl -X POST -H "Content-type: application/json" 'http://192.168.253.254:880/api/v1/category_replace' \
-d '{ \
"name": "administrator", \
"token": "1774027b2a93870b7ebe34570b35d6afef29ca9abbbd5ff1f9a7559e34a10cd9", \
"webuiconf": { \
"network": { \
"hostname": "obsiot", \
"domainname": "example.org", \
"interfaces": { \
"wlan0": { \
"mode": "false", \
"wmode": "ap", \
"ssid": "", \
"cliauth": "PSK", \
"passphrase": "", \
"eapauth": "PEAP", \
"eap_tlsid": "", \
"eap_tls_password": "", \
"eapid": "", \
"eappassword": "", \
"ap_isolation": "false", \
"nmode": "true", \
"hz": "2.4G", \
"channel": "8", \
"ccode": "JP", \
"auth": "WPA-PSK", \
"des": "AES", \
"wps_pin": "", \
"ipmode": "static", \
"address": "192.168.254.254", \
"netmask": "255.255.255.0", \
"addressv6": "", \
"prefixv6": "", \
"confirm": "dns.google" \
}, \
"eth0": { \
"mode": "true", \
"ipmode": "dhcp", \
"address": "192.168.253.254", \
"netmask": "255.255.255.0", \
"addressv6": "", \
"prefixv6": "", \
"dhcp": "false" \
}, \
"usbdongle": { \
"mode": "false", \
"dongle_model": "fs040u", \
"dongle_address": "", \
"ipmode": "static", \
"address": "", \
"netmask": "", \
"confirm": "dns.google", \
"resettime": "1380", \
"force_dongle_mode": "false" \
} \
}, \
"dhcp": { \
"range": { \
"from": "192.168.254.100", \
"to": "192.168.254.200" \
}, \
"options": { \
"gateway": "192.168.254.254", \
"dns": "192.168.254.254" \
}, \
"static": { \
"use": "false", \
"host": "" \
} \
}, \
"eth0dhcp": { \
"range": { \
"from": "192.168.253.100", \
"to": "192.168.253.200" \
}, \
"options": { \
"gateway": "192.168.253.254", \
"dns": "192.168.253.254" \
}, \
"static": { \
"use": "false", \
"host": "" \
} \
}, \
"defaultroute": "192.168.253.1", \
"defaultroutev6": "", \
"defaultrouteinterfacev6": "eth0", \
"nameservers": [ \
"192.168.253.1", \
"", \
"" \
], \
"control_interface": [ \
"eth0", \
"wlan0" \
] \
} \
}
}'