iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 24
0

除了可以自訂API內容之外,我們還可以建立RESTful API,簡單來說RESTful API就是透過簡潔易懂的架構下建立的API,優點是淺顯易懂,無需另外在寫入API(只需要加入設定檔),不過缺點就是比較沒辦法客製化,例如加入會員後要另外做什麼事情等等(寄驗證信),這就比較沒辦法用這招,格式會類似於:

!#新增
http://ip-address/user/insert
!#更新
http://ip-address/user/update
!#刪除
http://ip-address/user/delete

設定檔案

首先我們先在config/routes_api.php來建立相關資料:

  $config['routes_table'] = array();

接著我們跟自訂API一樣,先定義是針對哪個內容/user

  $config['routes_table'] = array(
    'user'=> array();
  );

下一步我們針對user去新增規則:

  $config['routes_table'] = array(
    'user'=> array(
      'table'=> 'user_main',
      'method'=> array(
        'insert'
      ),
      'detals'=> array(
        'insert'=> array(
          
        )
      )
    )
  );

各個意義代表如下:
table 代表指定資料庫
method 當前可使用方法
detals 使用方法的細節

接下來我們針對detals加些參數:

  $config['routes_table'] = array(
    'user'=> array(
      'table'=> 'user_main',
      'method'=> array(
        'insert'
      ),
      'detals'=> array(
        "insert"=> array(
          // 負責驗證
          'verify'=> array(),
          // 傳輸方式
          'type'=> 'post',
          // 帶入的參數
          'query'=> array(
            'user_uid'=> 'user_uid', 
            'user_displayName'=> 'user_displayName', 
            'user_email'=> 'user_email', 
            'user_photoURL'=> 'user_photoURL'
          ),
          // 相似的關鍵字
          'likes'=> array(),
          // 特殊的方法
          'record'=> array(),
          // 預設內容
          'default'=> array(
            'updateAt'=> 'code_date',
            'updateAtTime'=> 'code_time',
            'tsUpdateAt'=> 'code_timestamp',
            'lastLogin'=> '',
            'lastLoginTime'=> '',
            'tsLastLogin'=> '0'
          ),
          // 必填資料
          'require'=> array(
            'user_uid',
            'user_displayName',
            'user_email',
            'user_photoURL'
          )
        ),
      )
    )
  );

如此一來我們就建立好RESTful規則了,明天我們在加入到Api.php裡面。

Next station ... RESTful API


上一篇
[Day23] 通用Models (下)
下一篇
[Day25] RESTful API Part2
系列文
你說Codeigniter還能怎麼做?30

尚未有邦友留言

立即登入留言