1.get、post參數傳遞方式,以及測試地址;
get請求格式:服務器地址//PhalApi/Public/demo/?service=User.GetBaseInfo&/demo/?service=User.GetBaseInfo&user_id=1
返回消息:
{“ret”:200,”data”:{“code”:0,”msg”:”“,”info”:{“id”:”1”,”name”:”dogstar”,”note”:”oschina”}},”msg”:”“}
post請求地址:服務器地址/PhalApi/Public/demo/?service=User.GetBaseInfo&/demo/?service=User.GetBaseInfo
body參數名稱:user_id
body參數值:1
返回消息:
{“ret”:200,”data”:{“code”:0,”msg”:”“,”info”:{“id”:”1”,”name”:”dogstar”,”note”:”oschina”}},”msg”:”“}
2.基於PhalApi的redis擴展
詳細參考地址如下:
http://git.oschina.net/dogstar/PhalApi-Library/tree/master/Redis/
redis安裝在下面有詳細介紹在此只記錄如何將redis擴展至PhalApi架構中;
redis連接信息如下:
redis->connect(‘127.0.0.1’, 6379);
註冊配置文件在PhalApi庫的Config.app文件下面
return array(
//Redis配置項
'redis' => array(
//Redis緩存配置項
'servers' => array(
'host' => '127.0.0.1', //Redis服務器地址
'port' => '6379', //Redis端口號
'prefix' => 'developers_', //Redis-key前綴
'auth' => 'woyouwaimai76', //Redis鏈接密碼
),
// Redis分庫對應關係
'DB' => array(
'developers' => 1,
'user' => 2,
'code' => 3,
),
//使用阻塞式讀取隊列時的等待時間單位/秒
'blocking' => 5,
),
);
將下載下來的擴展庫中的Redis文件複製到library文件夾下:
在init入口文件註冊redis拓展 入口文件位置爲 public/init.php
//redis鏈接
DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers'));
3.數據庫操作說明
指定表名,表前綴在Config/dbs.php中,下面的’tbl_’爲表前綴;
'tables' => array(
//通用路由
'__default__' => array(
'prefix' => 'tbl_',
'key' => 'id',
'map' => array(
array('db' => 'db_demo'),
),
),
),
表後綴名在自己定義的mode層類中通過getTableName函數指定,在此爲user;
下面文件爲Demo/Mode/User.php
<?php
class Model_User extends PhalApi_Model_NotORM {
public function getByUserId($userId) {
return $this->getORM()
->select('*')
->where('id = ?', $userId)
->fetch();
}
public function getByUserIdWithCache($userId) {
$key = 'userbaseinfo_' . $userId;
$rs = DI()->cache->get($key);
if ($rs === NULL) {
$rs = $this->getByUserId($userId);
DI()->cache->set($key, $rs, 600);
}
return $rs;
}
protected function getTableName($id) {
return 'user';
}
}
通過上述兩個步驟指定好需要訪問的table,上述訪問的表名爲’tbl_user’;
詳細操作參考w3c文檔
http://www.w3cschool.cn/phalapi/7h1s1tqu.html
4.查詢接口參數地址
服務器地址/Public/demo/checkApiParams.php?service=User.GetBaseInfo
5.關於連續兩次操作統一sqlmodel會出現報錯的情況,將操作錯開進行就不會報錯。1.讀取數據列表;2.根據讀取的id進行刪除;報錯
1.讀取數據列表;2.根據id刪除其他表數據;3.根據id刪除本表數據正常;