RespVo

Introduction

为了方便开发者返回数据,tio-boot 内置了了统一的数据返回类 RespVo RespVo 是一个用于构造和管理响应对象的工具类,它提供了一种标准化的方式来表示操作的结果(成功、失败或未知)、消息、数据和业务编码。这个类非常适合在后端服务中使用,尤其是在需要对前端返回标准化的响应结构时。

RespVo 使用示例

import com.litongjava.tio.http.server.annotation.RequestPath;
import com.litongjava.tio.utils.resp.RespVo;

@RequestPath("/resp-vo")
public class RespVoController {

  public RespVo success() {
    return RespVo.ok("success");
  }

  public RespVo fail() {
    return RespVo.fail("fail");
  }
}

成功响应

  • 方法: success()
  • 类型: GET
  • 路径: /resp-vo/success
  • 返回数据示例:
{
  "data": "success",
  "code": 1,
  "ok": true,
  "msg": null
}

说明:

  • data 字段表示业务数据,此处为字符串 "success"。
  • code 字段为业务编码,1 表示操作成功。
  • ok 字段表明响应状态,true 表示成功。
  • msg 字段通常用于传递额外信息,此处为 null 因为操作成功不需要额外消息。

失败响应

  • 方法: fail()
  • 类型: GET
  • 路径: /resp-vo/fail
  • 返回数据示例:
{
  "data": null,
  "code": 0,
  "ok": false,
  "msg": "fail"
}

说明:

  • data 字段在失败响应中通常为空,因为没有业务数据要返回。
  • code 字段为业务编码,0 表示操作失败。
  • ok 字段表明响应状态,false 表示失败。
  • msg 字段用于提供失败的具体原因,此处为字符串 "fail"。

RespVo 使用文档

成功响应

要创建一个表示成功的响应,可以使用 RespVo.ok() 方法。这个方法可以被重载,以便于传递与操作成功相关的数据。

  • 无数据成功响应:
RespVo response = RespVo.ok();
  • 带数据的成功响应:
RespVo response = RespVo.ok(someData);

在这里,someData 可以是任何类型的对象,表示与操作成功相关的业务数据。

失败响应

要创建一个表示失败的响应,可以使用 RespVo.fail() 方法。这个方法也可以被重载,以便于传递表示失败原因的消息。

  • 无消息的失败响应:
RespVo response = RespVo.fail();
  • 带消息的失败响应:
RespVo response = RespVo.fail("失败的原因");

设置额外属性

除了基本的成功或失败状态,RespVo 还允许你设置额外的属性,如消息(msg)、业务编码(code)和业务数据(data)。

  • 设置消息:
response.msg("操作成功的附加信息");
  • 设置业务编码:
response.code(1001); // 1001 为示例业务编码
  • 设置业务数据:
response.data(someData);

响应格式

使用 RespVo 构造的响应对象通常包含以下几个字段:

  • code:业务编码,用于表示操作的具体结果。
  • ok:布尔值,表示操作是成功(true)还是失败(false)。
  • msg:字符串,用于提供关于操作结果的额外信息或失败原因。
  • data:对象,携带与操作成功相关的业务数据。

示例

以下是一个完整的示例,展示了如何使用 RespVo 来构造一个带有成功消息、业务编码和业务数据的成功响应:

public RespVo createSuccessResponse() {
    Object someData = ...; // 从业务逻辑获取数据
    return RespVo.ok(someData)
                 .msg("操作成功完成")
                 .code(200); // 使用自定义的成功业务编码
}

相应地,下面是一个失败响应的示例:

public RespVo createFailResponse() {
    return RespVo.fail("无法完成操作,因为...")
                 .code(400); // 使用自定义的失败业务编码
}