该功能主要用于日常开发,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
}
}