Codeigniter 套用 restserver
安裝
- 複製幾個檔案
- libraries/Format.php
- libraries/REST_Controller.php
- config/rest.php
- language/english/rest_controller_lang.php
測試
- 將 controllers/api/Example.php 複製到 controllers/ 這層
- Ctrl結構:
- Example->aa_users_get()
- Example->aa_users_post()
- 網址:
- http://你的CI網址/example/aa_users/get
- http://你的CI網址/example/aa_users/post
- http://你的CI網址/example/aa_users
- Get 方式: ?id=1
- Post 方式:[id:1]
- 結構:
- index.php/Controller/Resource/Param/format
語系調整
- rest 預設 response 語系可在 config/rest.php 中 rest_language 調整
- 再將官方提供的語言包放到您的語系規則中
DB Table 名稱調整
- $config['rest_keys_table'] = 'keys';
- $config['rest_logs_table'] = 'logs';
- $config['rest_access_table'] = 'access';
- $config['rest_limits_table'] = 'limits';
- 建議都加上前綴,rest_
權限設定
- IP 白名單
- rest.php
- $config['rest_ip_whitelist'] = '0.0.0.0';
- $config['rest_ip_whitelist_enabled'] = TRUE;
- 帳密登入
- rest.php
- $config['rest_valid_logins'] = [];
- $config['rest_auth'] = 'basic';
- $config['auth_source'] = '';
- client 端 帶 header 驗證,Authorization: Basic base64_encode('user:pass')
- API Key
- 照範本建立 keys table
request 次數控制
- 先完成 key 設定
- config/rest.php 開啟 rest_enable_limits
- 資料庫建立 limit table
- 在 Ctrl 的construct 去設定每個 account 可 request 次數/小時
REST_Controller 繼承
- 可在 construct 限制 function query 次數
Client 端
- codeigniter-restclient
I/O Log
- libraries/REST_Controller.php
- __construct() 加上
error_log('Call api '.json_encode($this->_post_args)); - set_response() 加上
error_log(API RESP '.$http_code.', ',json_encode(data));
Codeigniter 套用 restserver
Reviewed by Wild
on
4/29/2016 01:29:00 上午
Rating:
沒有留言:
沒有Google帳號也可發表意見唷!