Codeigniter 套用 restserver


安裝
  1. 複製幾個檔案
    1. libraries/Format.php
    2. libraries/REST_Controller.php
    3. config/rest.php
    4. 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 次數控制
    1. 先完成 key 設定
    2. config/rest.php 開啟 rest_enable_limits
    3. 資料庫建立 limit table
    4. 在 Ctrl 的construct 去設定每個 account 可 request 次數/小時


    REST_Controller 繼承
    • 可在 construct 限制 function query 次數

    Client 端
    I/O Log
    1. libraries/REST_Controller.php
      1. __construct() 加上
        error_log('Call api '.json_encode($this->_post_args));
      2. set_response() 加上
        error_log(API RESP '.$http_code.', ',json_encode(data));
    Codeigniter 套用 restserver Codeigniter 套用 restserver Reviewed by Wild on 4/29/2016 01:29:00 上午 Rating: 5

    沒有留言:

    沒有Google帳號也可發表意見唷!

    技術提供:Blogger.