Midway 初体验之自定义统一API响应格式

发布于 2024-07-19  173 次阅读


初始化Midway项目

创建第一个应用 | Midway (midwayjs.org)

创建控制类

在项目下目录创建 \src\controller\sys.controller.ts 文件

/**
 * 定义响应类型
 */
export interface FormatReturn {
    code: number;  // 服务返回状态码
    data: any;  // 服务具体返回的数据
    message: string;  // 服务返回信息
    timestamp: number;  // 服务返回当前的时间戳
}

/**
 * 控制器基类,提供统一的响应方法。
 */

export class SysController {

    /**
     * 成功返回的标准结构
     */
    ok(data: object = {}, message: string = 'success', code: number = 200): FormatReturn {

        return {
            code: code,
            message: message,
            data: data,
            timestamp: Date.now()
        };
    }

    /**
     * 失败返回的标准结构
     */
    fail(message: string = 'error', code: number = 404, data: object = {}): FormatReturn {

        return {
            code: code,
            message: message,
            data: data,
            timestamp: Date.now()
        };
    }


}

在同目录下别的controller 中引入使用

import { Controller, Get,Post } from '@midwayjs/core';
import { SysController } from './sys.controller';

@Controller('/')
export class HomeController extends SysController {
  @Get('/')
  @Post('/')
  async home(): Promise<object> {

    return this.ok({},"Welcome to Midway!");
  }
}

也可以通过编写中间件实现,因需求不同,不做过多研究。