Operaciones básicas del proyecto ThinkPHP6 (5. Formato de datos de API de paquete y administración unificada de códigos de estado comercial)

Paquete de formato de datos de API y gestión unificada de códigos de estado comercial

1. Formato de devolución de datos de API de paquete

Cuando devolvemos datos de API, generalmente usamos el formato json para la salida. Como en la sección anterior, no podemos encontrar el controlador o el método para devolver datos:

public function __call($name, $arguments)
{
    
    
    // 如果是API模块,需要输出API的数据格式(一般是json)
    // 如果是模板引擎的方式,需要输出自定义错误页面
    $result = [
        'status' => 0,
        'message' => '找不到该方法',
        'result' => null
    ];
    return json($result, 400);
}

Este método se utiliza más en el diseño de interfaces API. Para unificar el formato de datos devuelto por el fondo y facilitar el procesamiento unificado del front end, podemos diseñar un formato de datos API generalizado.

appHay un common.phparchivo en el directorio , este es un archivo público, puede definir métodos públicos aquí:

<?php
// 应用公共文件

/**
 * 通用化API数据格式输出
 * @param $status
 * @param string $message
 * @param array $data
 * @param int $httpStatus
 * @return \think\response\Json
 */
function show($status, $message = 'error', $data = [], $httpStatus = 200){
    
    
    $result = [
        "status" => $status,
        "message" => $message,
        "result" => $data
    ];
    return json($result, $httpStatus);
}
parámetro efecto Defaults
$status Código comercial
$message Mensaje de retorno error
$data Devolver datos []
$httpStatus Código de estado HTTP 200

Modificamos el método del BaseControllercontrolador __call:

public function __call($name, $arguments)
{
    
    
    // 如果是API模块,需要输出API的数据格式(一般是json)
    // 如果是模板引擎的方式,需要输出自定义错误页面
    /*$result = [
        'status' => 0,
        'message' => '找不到该方法',
        'result' => null
    ];
    return json($result, 400);*/
    return show(0, "找不到{
      
      $name}方法", null, 404);
}

Visite el método inexistente test1 nuevamente:
Inserte la descripción de la imagen aquí

Dos, gestión unificada de códigos de estado comercial

El código de estado comercial en el código anterior se pasa cuando se llama al método común. Cuando nuestra lógica comercial es compleja, habrá muchos códigos de estado. Para evitar conflictos y facilitar la administración y el mantenimiento, podemos configurarlo en un solo lugar: cree uno nuevo
en el configdirectorio status.phpEl archivo se utiliza para almacenar la configuración del código comercial.

El nombre del archivo puede ser arbitrario, los configarchivos en el directorio se cargarán automáticamente y el config("文件名.字段名")valor de configuración se puede obtener usándolo , comoconfig("status.action_not_found")

El contenido del archivo es el siguiente, el código de estado específico se puede configurar de acuerdo con el escenario comercial específico:

<?php
/**
 * 该文件主要存放业务状态码相关的配置
 */

return [
    "success" => 1,
    "error" => 0,
    "not_login" => -1,
    "user_is_register" => -2,
    "action_not_found" => -3
];

Luego modificamos bajo BaseControllerel __callmétodo:

return show(config("status.action_not_found"), "找不到{
      
      $name}方法", null, 404);

Visite el método inexistente nuevamente:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/zy1281539626/article/details/110311944
Recomendado
Clasificación