AUTO RESTについて説明します。AUTO RESTとは、文字通りRESTがAUTO(自動)で処理されると言う事を意味しています。
talbeをリソースと見立てたtableに対するレコード操作(ソース操作)をURLベースで命令する事が出来ます。
その際に使用するURLを以下のルールに沿って実行する事によりレコード操作をする処理(PHP)を記述する必要が無くなります。
コレをAUTO RESTと呼んでいます。
※ UNICORNの
RESTは、厳密にはRESTではなくREST Likeで、実際にはリソース指向を一部踏襲しています。
※ 但し、この機能は2017年現在はMySQLに限定されます。
※レコード操作をする処理(PHP)を記述、あるいは完全に改変(オーバーライド)する機能も当然用意されています。その機能については別途説明します。
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 |
自己保有リソースに限定した操作を行うURLUNICORNの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とパラメータの組み合わせのみ自動生成実際にアプリケーションとして公開する際には、改めて設定を見直す必要があります。