「インタラクションAPI」の版間の差分
(→ファイル削除操作) |
(→ファイル一覧操作) |
||
(同じ利用者による、間の12版が非表示) | |||
行1: | 行1: | ||
− | '''インタラクションAPI''' とは[[PIONE]](主に[[PIONE Webclient]])においてインタラクティブ操作による[[コマンド]] | + | '''インタラクションAPI''' とは[[PIONE]](主に[[PIONE Webclient]])においてインタラクティブ操作による[[コマンド]]を実現するためにサーバとの通信を行うための操作です。インタラクティブ操作含む[[コマンド]]を作成する場合はこれらの操作を.htmlや.cgiファイルなどに記述する必要があります。<br> |
== 操作一覧 == | == 操作一覧 == | ||
行21: | 行21: | ||
=== ファイル取得操作 === | === ファイル取得操作 === | ||
− | + | 通知したファイル名(formの場合はactionに当たる)にて指定したCGIを実行します。実行できなかった場合はエラーとなります。また、この操作で取得するファイルは予めパッケージに含まれているファイルに限ります。それ以外のファイルは対象外ですので、ご注意ください。<br> | |
<table border="1"> | <table border="1"> | ||
<tr> | <tr> | ||
行34: | 行34: | ||
<td>get</td> | <td>get</td> | ||
<td>ファイル取得</td> | <td>ファイル取得</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>その他全てのパラメータ</td> | ||
+ | <td>任意</td> | ||
+ | <td>任意の値</td> | ||
+ | <td>全てのパラメータが引き渡される</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
行39: | 行45: | ||
=== ファイル作成操作 === | === ファイル作成操作 === | ||
− | + | 通知したファイル名でファイルを作成します。pione-contentに書き込むデータ内容を指定します。<br> | |
<table border="1"> | <table border="1"> | ||
<tr> | <tr> | ||
行63: | 行69: | ||
=== ファイル削除操作 === | === ファイル削除操作 === | ||
− | + | 通知したファイルを削除します。<br> | |
<table border="1"> | <table border="1"> | ||
<tr> | <tr> | ||
行81: | 行87: | ||
=== ファイル一覧操作 === | === ファイル一覧操作 === | ||
+ | 通知したディレクトリ内のファイル情報一覧を[[JSON]]データで得ます。<br> | ||
<table border="1"> | <table border="1"> | ||
<tr> | <tr> | ||
行93: | 行100: | ||
<td>list</td> | <td>list</td> | ||
<td>ファイルリスト</td> | <td>ファイルリスト</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>pione-show-all</td> | ||
+ | <td>任意</td> | ||
+ | <td>true または false</td> | ||
+ | <td>trueにすると.で始まるファイルもリスト表示される(デフォルト: false)</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | |||
+ | 返却される[[JSON]]データ | ||
+ | <table border="1"> | ||
+ | <tr> | ||
+ | <th>属性名</th> | ||
+ | <th>説明</th> | ||
+ | <th>例</th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>name</td> | ||
+ | <td>ファイル名(パスは含まれない)</td> | ||
+ | <td>AAA.txt</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>type</td> | ||
+ | <td>ファイル: "file"またはディレクトリ: "dir"</td> | ||
+ | <td>file</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>mtime</td> | ||
+ | <td>最終更新日時</td> | ||
+ | <td>2014-12-17T10:46:32+09:00</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>size</td> | ||
+ | <td>ファイルのバイトサイズ</td> | ||
+ | <td>57</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
行102: | 行145: | ||
=== a hrefの記述例 === | === a hrefの記述例 === | ||
− | a | + | a hrefを用いる場合は(場所)?pione-action=(操作名)へリンクするようにします。<br> |
<br> | <br> | ||
行108: | 行151: | ||
<a href="?pione-action=finish">終了</a> | <a href="?pione-action=finish">終了</a> | ||
</pre> | </pre> | ||
+ | (場所)はワーキングディレクトリからの相対パスとなりますので、finishの場合は省略可能です。<br> | ||
+ | <br> | ||
+ | |||
+ | <pre> | ||
+ | <a href="AAA.txt?pione-action=delete">削除</a> | ||
+ | </pre> | ||
+ | 他の操作では(場所)にファイル名等を指定します。上記はファイルAAA.txtを削除する例です。<br> | ||
+ | <br> | ||
+ | |||
+ | <pre> | ||
+ | <a href="AAA.txt?pione-action=create&pione-content=abc">作成</a> | ||
+ | </pre> | ||
+ | 他のパラメータを付加する場合は&で繋いで記述します。上記はabcの内容でファイルAAA.txtを作成する例です。<br> | ||
<br> | <br> | ||
行121: | 行177: | ||
</form> | </form> | ||
</pre> | </pre> | ||
+ | <br> | ||
+ | |||
+ | === [[JavaScript]]の記述例 === | ||
+ | レスポンスを受け取って、処理を行いたいときにはjQuery.getを使用する方法があります。<br> | ||
+ | <pre> | ||
+ | <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> | ||
+ | <script type="text/javascript"> | ||
+ | function AAACreate(){ | ||
+ | jQuery.get("AAA.txt", {"pione-action": "create", "pione-content": "DDD"}, function(data) { | ||
+ | alert(data); | ||
+ | }); | ||
+ | } | ||
+ | </script> | ||
+ | </pre> | ||
+ | 上記のようにすると、AAACreateを呼び出したときに"DDD"の内容でファイル"AAA.txt"を作成することができ、作成結果をアラートで表示します。<br> | ||
+ | <br> | ||
+ | |||
+ | この関数は例えば下記のように[[HTML]]文書内に記述すれば、ボタンを押したときに実行するようにできます。<br> | ||
+ | <pre> | ||
+ | <input type="button" value="作成" onclick="AAACreate()"> | ||
+ | </pre> | ||
+ | <br> | ||
+ | |||
+ | また、ファイル一覧操作(list)の場合は戻り値が[[JSON]]データですので、これを利用するためにはgetJSONを使用します。<br> | ||
+ | <pre> | ||
+ | <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> | ||
+ | <div id="textDiv"></div> | ||
+ | <script> | ||
+ | var div = document.getElementById("textDiv"); | ||
+ | div.textContent = ""; | ||
+ | $.getJSON("./", {"pione-action": "list"}, function(data){ | ||
+ | $.each(data, function() { | ||
+ | div.textContent += this.name +"\n"; | ||
+ | }); | ||
+ | }); | ||
+ | </script> | ||
+ | </pre> | ||
+ | 上記のようにすると、ワーキングディレクトリ内のファイル名一覧を表示します。<br> | ||
<br> | <br> |
2014年12月17日 (水) 01:55時点における最新版
インタラクションAPI とはPIONE(主にPIONE Webclient)においてインタラクティブ操作によるコマンドを実現するためにサーバとの通信を行うための操作です。インタラクティブ操作含むコマンドを作成する場合はこれらの操作を.htmlや.cgiファイルなどに記述する必要があります。
目次
操作一覧
終了通知操作
インタラクティブ操作画面を終了します。メインに処理を返すときに必ず通知する必要があります。
パラメータ名 | 区分 | 値 | 説明 |
---|---|---|---|
pione-action | 必須 | finish | 終了通知 |
ファイル取得操作
通知したファイル名(formの場合はactionに当たる)にて指定したCGIを実行します。実行できなかった場合はエラーとなります。また、この操作で取得するファイルは予めパッケージに含まれているファイルに限ります。それ以外のファイルは対象外ですので、ご注意ください。
パラメータ名 | 区分 | 値 | 説明 |
---|---|---|---|
pione-action | 必須 | get | ファイル取得 |
その他全てのパラメータ | 任意 | 任意の値 | 全てのパラメータが引き渡される |
ファイル作成操作
通知したファイル名でファイルを作成します。pione-contentに書き込むデータ内容を指定します。
パラメータ名 | 区分 | 値 | 説明 |
---|---|---|---|
pione-action | 必須 | create | ファイル作成 |
pione-content | 必須 | ファイル名または文字列 | ファイル名の場合はファイル内のデータを、文字列の場合は文字列を書き込む |
ファイル削除操作
通知したファイルを削除します。
パラメータ名 | 区分 | 値 | 説明 |
---|---|---|---|
pione-action | 必須 | delete | ファイル削除 |
ファイル一覧操作
通知したディレクトリ内のファイル情報一覧をJSONデータで得ます。
パラメータ名 | 区分 | 値 | 説明 |
---|---|---|---|
pione-action | 必須 | list | ファイルリスト |
pione-show-all | 任意 | true または false | trueにすると.で始まるファイルもリスト表示される(デフォルト: false) |
返却されるJSONデータ
属性名 | 説明 | 例 |
---|---|---|
name | ファイル名(パスは含まれない) | AAA.txt |
type | ファイル: "file"またはディレクトリ: "dir" | file |
mtime | 最終更新日時 | 2014-12-17T10:46:32+09:00 |
size | ファイルのバイトサイズ | 57 |
HTMLl文書による操作の記述方法
.htmlまたは.cgiにてこれらの操作を実行するためには下記のような記述を用います。
a hrefの記述例
a hrefを用いる場合は(場所)?pione-action=(操作名)へリンクするようにします。
<a href="?pione-action=finish">終了</a>
(場所)はワーキングディレクトリからの相対パスとなりますので、finishの場合は省略可能です。
<a href="AAA.txt?pione-action=delete">削除</a>
他の操作では(場所)にファイル名等を指定します。上記はファイルAAA.txtを削除する例です。
<a href="AAA.txt?pione-action=create&pione-content=abc">作成</a>
他のパラメータを付加する場合は&で繋いで記述します。上記はabcの内容でファイルAAA.txtを作成する例です。
form actionの記述例
form actionタグ内にてpione-actionの値を定義して、ボタン操作によってsubmitすると操作命令を送信することができます。この場合はfileなどの値も合わせて送信できるので、ファイル操作のときにはこちらを用います。
<form action="./AAA.txt" method="post" enctype="multipart/form-data"> <input type="hidden" name="pione-action" value="create"/> <button type="submit">作成(テキスト)</button> <input type="text" name="pione-content" value=""/> </form>
JavaScriptの記述例
レスポンスを受け取って、処理を行いたいときにはjQuery.getを使用する方法があります。
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script type="text/javascript"> function AAACreate(){ jQuery.get("AAA.txt", {"pione-action": "create", "pione-content": "DDD"}, function(data) { alert(data); }); } </script>
上記のようにすると、AAACreateを呼び出したときに"DDD"の内容でファイル"AAA.txt"を作成することができ、作成結果をアラートで表示します。
この関数は例えば下記のようにHTML文書内に記述すれば、ボタンを押したときに実行するようにできます。
<input type="button" value="作成" onclick="AAACreate()">
また、ファイル一覧操作(list)の場合は戻り値がJSONデータですので、これを利用するためにはgetJSONを使用します。
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <div id="textDiv"></div> <script> var div = document.getElementById("textDiv"); div.textContent = ""; $.getJSON("./", {"pione-action": "list"}, function(data){ $.each(data, function() { div.textContent += this.name +"\n"; }); }); </script>
上記のようにすると、ワーキングディレクトリ内のファイル名一覧を表示します。