lumen7.x 使用笔记(七)Api返回处理中间件

385 次浏览次阅读
没有评论

lumen7.x 使用笔记(七)Api 返回处理中间件

<?php
namespace App\Http\Middleware;

use Closure;
use App\Enums\WopCode;

/**
* API 返回封装中间件
*/
class CustomFormat
{
    /**
     * Notes: API 返回封装
     * User: clj
     * Date: 2020/9/17
     * Time: 9:02 下午
     * @param $request
     * @param Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {$response = $next($request);
        $original = $response->getOriginalContent();
        switch (gettype($original)) {
            case 'object':
                $original = $original->toArray();
                $response->setContent([
                    'code' => WopCode::SUCCESS,
                    'msg'  => 'success',
                    'nowTime' => time(),
                    'data' => $original,
                ]);
                break;
            case 'boolean':
                if ($original == false) {
                    $response->setContent([
                        'code' => WopCode::FIELD,
                        'msg'  => 'failed',
                        'nowTime' => time(),
                        'data' => ' 失败 ',
                    ]);
                    break;
                } else {
                    $response->setContent([
                        'code' => WopCode::SUCCESS,
                        'msg'  => 'success',
                        'nowTime' => time(),
                        'data' => ' 成功 ',
                    ]);
                    break;
                }
            case 'array':
                if (array_key_exists('code', $original)) {switch ($original['code']) {
                        case WopCode::VERIFY_FIELD:
                            $response->setContent([
                                'code' => WopCode::VERIFY_FIELD,
                                'msg'  => 'failed',
                                'nowTime' => time(),
                                'data' => $original['data'],
                            ]);
                            break;
                        case WopCode::MISS_REQUIRED_PARAMS:
                            $response->setContent([
                                'code' => WopCode::MISS_REQUIRED_PARAMS,
                                'msg'  => 'failed',
                                'nowTime' => time(),
                                'data' => $original['data'],
                            ]);
                            break;
                        default:
                            $response->setContent([
                                'code' => 0,
                                'msg'  => 'failed',
                                'nowTime' => time(),
                                'data' => $original['data'],
                            ]);
                            break;
                    }
                } else {
                    $response->setContent([
                        'code' => WopCode::SUCCESS,
                        'msg' => 'success',
                        'nowTime' => time(),
                        'data' => $original,
                    ]);
                }
            case 'NULL':
                $response->setContent([
                    'code' => WopCode::SUCCESS,
                    'msg' => 'success',
                    'nowTime' => time(),
                    'data' => [],]);
            default:
                break;
        }
        return $response;
    }
}
正文完
 0
评论(没有评论)