数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

该功能主要用于日常开发,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.phpmsg.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)的intfloat数据转换回真实类型。

空字符串,转换回null

注意,如果是string*.00会被强制转换成int类型的*

也就是0.00会被转成018.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

企业级 - 高性能 PHP 框架

最后更新:2年前 . 作者-小黄牛

本篇目录