UNICORNの特徴の一つであるAUTO RESTについて説明します。

AUTO RESTとは、文字通りRESTAUTO(自動)で処理されると言う事を意味しています。
talbeリソースと見立てたtableに対するレコード操作(ソース操作)URLベースで命令する事が出来ます。
その際に使用するURLを以下のルールに沿って実行する事によりレコード操作をする処理(PHP)を記述する必要が無くなります。
コレをAUTO RESTと呼んでいます。

※ UNICORNのRESTは、厳密にはRESTではなくREST Likeで、実際にはリソース指向を一部踏襲しています。
※ 但し、この機能は2017年現在はMySQLに限定されます。
レコード操作をする処理(PHP)を記述、あるいは完全に改変(オーバーライド)する機能も当然用意されています。その機能については別途説明します。

具体的にはUNICORNのAUTO RESTは以下のルールで出来ています。

機能 メソッド べき等性 URL
複数リソースの参照 GET アリ table.output
単一リソースの参照 GET アリ table/1.output
リソース(テーブル)構造の参照 HEAD アリ table.output
リソースの追加・更新 POST ナシ table.output
リソースの更新 PUT アリ table/1.output
複数リソースの物理削除 DELETE ナシ table.output
単一リソースの物理削除 DELETE ナシ table/1.output

outputの種類

種類 文字コード
json UTF-8
xml UTF-8
csv sjis
tsv sjis
html UTF-8

特殊なケース:自己保有リソースに限定した操作を行うURL

UNICORNのREST APIは、リクエストの際に自動でデバイスを検知してユーザー毎の識別を開始する機能が標準で備わっています。
そしてUNICORNではそれを元に自己保有リソースを明示的に分ける機能も備わっています。
AUTO RESTをコールする際にme/を付けることで自己保有リソースとしての保存・参照を試みさせる事が出来ます。
具体的な方法は以下になります。

機能 メソッド べき等性 URL
複数の自己保有リソースの参照 GET アリ me/table.output
単一の自己保有リソースの参照 GET アリ me/table/1.output
自己保有リソースの追加・更新 POST ナシ me/table.output
自己保有リソースの更新 PUT アリ me/table/1.output
自己保有複数リソースの物理削除 DELETE ナシ me/table.output
自己保有単一リソースの物理削除 DELETE ナシ me/table/1.output

その他指定可能な絞込パラメータ

パラメータ名 機能
ORDER リストの順序をSQLベースで指定可能
LIMIT リストの取得件数を指定可能
OFFCET リストの取得開始位置をSQLベースで指定可能
GROUP リストのグルーピング条件をSQLベースで指定可能
JOIN リストへの表結合条件をSQLベースで指定可能
QUERY 絞り込み条件をSQLベースで指定可能

AUTO RESTの公開・非公開

AUTO RESTは上記のような性質上、データベース上のテーブルであればURLを介してアクセス出来てしまいますし、パラメータをPUTする事も出来てしまいます。
その為デフォルトでは以下の設定でコンフィグされており、全てが公開・フルアクセス出来る状態ではありません。

  • 公開環境ではREST_RESOURCE_WHITE_LISTに設定されているURLとパラメータのみ許可
  • REST_RESOURCE_WHITE_LISTはローカル環境でアクセスされたURLとパラメータの組み合わせのみ自動生成

実際にアプリケーションとして公開する際には、改めて設定を見直す必要があります。