Operações básicas do projeto ThinkPHP6 (5. Pacote de formato de dados API e gerenciamento unificado de códigos de status de negócios)

Formato de dados da API do pacote e gerenciamento unificado de códigos de status de negócios

1. Formato de retorno de dados da API do pacote

Quando retornamos dados da API, geralmente usamos o formato json para a saída. Como na seção anterior, não podemos encontrar o controlador ou método para retornar os dados:

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

Esse método é mais usado ao projetar interfaces de API. Para unificar o formato de dados retornado pelo segundo plano e facilitar o processamento unificado do front end, podemos projetar um formato de dados de API generalizado.

appHá um common.phparquivo no diretório , este é um arquivo público, você pode definir métodos públicos aqui:

<?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 efeito Padrões
$status Código comercial
$message Mensagem de retorno erro
$data Dados de retorno []
$httpStatus Código de status HTTP 200

Modificamos o método do 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 o método inexistente test1 novamente:
Insira a descrição da imagem aqui

Dois, gerenciamento unificado de códigos de status de negócios

O código de status de negócios no código acima é passado quando o método comum é chamado. Quando nossa lógica de negócios é complexa, haverá muitos códigos de status. Para evitar conflitos e facilitar o gerenciamento e a manutenção, podemos configurá-lo em um só lugar: crie um novo
no configdiretório status.phpO arquivo é usado para armazenar a configuração do código de negócios.

O nome do arquivo pode ser arbitrário, os configarquivos no diretório serão carregados automaticamente e o config("文件名.字段名")valor de configuração pode ser obtido usando-o , comoconfig("status.action_not_found")

O conteúdo do arquivo é o seguinte, o código de status específico pode ser definido de acordo com o cenário de negócios específico:

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

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

Em seguida, modificamos BaseControllero __callmétodo:

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

Visite o método inexistente novamente:
Insira a descrição da imagem aqui

Acho que você gosta

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