该功能主要用于日常开发,HTTP-API服务中,设计了一套独立便捷的Restful-return接口返回值管理模块。
API返回值的使用,主要依赖/restful/目录中的config.php配置项目,初始化默认配置如下:
[
// 返回值类型
'type' => 'json',
// 默认的返回值格式
'default' => [
'force' => true, // 是否强制返回值int|double|null类型转换
'status' => 'code', // 状态码字段名
'tips' => 'msg', // 描述字段名
'result' => 'data', // 结果集字段名
'set' => [], // 默认结果集
'headers' => [], // 响应头,可用于跨域设置(v2.5.23版本前支持)
],
]
其中default为默认的数据结构,当我们不使用\x\Restful::make('新的下标')指定新的返回值结构时,默认使用该结构,如果我们需要设置新的返回值结构,只需要copydefault将下标改为新值即可。
同时,/restful/目录下还存在一个default目录,该目录是对应default默认的返回值结构,用于存放code状态码和msg状态说明。
如果设置了新的数据结构,则需要copydefault目录,并重命名为对应的下标名。
下面我们来看下default目录下的两个文件:code.php和msg.php
// code.php
// 状态码管理
return [
'ERROR' => 0, // 默认失败状态码
'SUCCESS' => 1, // 默认成功状态码
];
在实际应用时,我们需要通过\x\Restful::ERROR()的方式来读取对应的状态码。
// msg.php
// 状态说明管理
return [
// 默认错误状态码对应的tips
'ERROR' => [
'default' => '请求失败', // 默认值
],
// 默认成功状态码对应的tips
'SUCCESS' => [
'default' => '请求成功', // 默认值
],
];
状态码说明是一个二维数组,一维下标需要对应状态码的下标,同时必须存在一个名为default的二维下标。
这样设计的初衷是由于,在实际应用中,同一个状态码可能存在多个不同的说明,这样就可以通过指定下标读取对应的说明,当不指定时,读取default下标。
注意:force配置项只有从v2.5.17版本起才支持。
force设置为true后,系统会自动把返回数据集中字符串类型(string)的int、float数据转换回真实类型。
空字符串,转换回null。
注意,如果是string的*.00会被强制转换成int类型的*
也就是0.00会被转成0,18.00会被转成18,这是PHP数据结构的先天上问题。
例如:
{
"code": 0,
"msg": "请求成功",
"data": {
"user_id": "100",
"money": "19.01",
"list": [
{
"id": "1",
"money": "0.00"
},
{
"id": "2",
"money": "18.00"
}
],
"region_id": ""
}
}
会被转换成:
{
"code": 0,
"msg": "请求成功",
"data": {
"user_id": 100,
"money": 19.01,
"list": [
{
"id": 1,
"money": 0
},
{
"id": 2,
"money": 18
}
],
"region_id": null
}
}
SW-X