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とパラメータの組み合わせのみ自動生成実際にアプリケーションとして公開する際には、改めて設定を見直す必要があります。