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
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删除本表数据正常;