当前位置: 首页 > 知识库问答 >
问题:

如何将http状态添加到所有响应dto(数据传输对象)?

幸鸿轩
2023-03-14
public class BaseDto {

 private int code;
 private boolean success;

 public BaseDto() {
    this.code = HttpStatus.OK.value();
    this.success = HttpStatus.OK.is2xxSuccessful();
 }

}

当然,我是通过如下扩展来使用这个类的:

@ApiModel("User")
public class UserDto extends BaseDto {
    private String email;
    private String username;
    // stuffs
}

如果我在使用此结构时处理用户请求,我将得到:

{
  code: 200,
  success: true,
  email: "",
  username: ""
}
{
  "code": 0,
  "createdAt": "2016-05-17T21:59:37.512Z",
  "id": "string",
  "likes": [
    {
      "code": 0,
      "createdAt": "2016-05-17T21:59:37.512Z",
      "deviceType": "string",
      "email": "string",
      "fbAccessToken": "string",
      "fbId": "string",
      "followers": [
        {}
      ],
      "followings": [
        {}
      ],
      "id": "string",
      "profileImage": "string",
      "success": true,
      "token": "string",
      "udid": "string",
      "updatedAt": "2016-05-17T21:59:37.512Z",
      "username": "string",
      "version": 0
    }
  ],
  "pictures": [
    "string"
  ],
  "postedBy": {
    "code": 0,
    "createdAt": "2016-05-17T21:59:37.512Z",
    "deviceType": "string",
    "email": "string",
    "fbAccessToken": "string",
    "fbId": "string",
    "followers": [
      {}
    ],
    "followings": [
      {}
    ],
    "id": "string",
    "profileImage": "string",
    "success": true,
    "token": "string",
    "udid": "string",
    "updatedAt": "2016-05-17T21:59:37.512Z",
    "username": "string",
    "version": 0
  },
  "success": true,
  "text": "string",
  "updatedAt": "2016-05-17T21:59:37.512Z",
  "userId": "string",
  "userIds": [
    "string"
  ],
  "version": 0
}

共有1个答案

席言
2023-03-14

您可以创建响应并设置HttpStatus。在AppUtil类中编写一个方法,如下所示:

public static ResponseEntity<ResponseEnvelope> successResponse(Object data,
        int messageCode, String message) {
    ResponseEnvelope envelope = new ResponseEnvelope(data, true, message,
            messageCode);
    ResponseEntity<ResponseEnvelope> responseEntity = new ResponseEntity<>(
            envelope, HttpStatus.OK);
    return responseEntity;
}

SuccessResponse方法中,可以在ResponseEnvelope中设置Data对象,该对象将与HttpStatus一起在要返回的ResponseEntity中发送。

在这里查看我以前的答案

 类似资料:
  • 我正在寻找一种从JPA实体创建数据传输对象(DTO)的好方法,反之亦然。我想将DTO作为JSON发送到客户机,然后接收修改后的DTO并将其保存回数据库。在接收到的对象从JSON解析到它的Java类之后,从EntityManager对其执行merge方法将是最容易的。  例如,有以下实体和用于保存修改对象的Rest方法: 只要我将整个实体类作为JSON发送并接收回整个实体,就可以很好地工作。然后En

  • 我非常确定“Expires”是有效的HTTP响应头类型。但是当我尝试在代码中设置它时:(这是在ActionFilter.OnActionExecuted方法中) 我最后有一个例外: InvalidOperationException:错误使用的标头名称。确保请求头与HttpRequestMessage一起使用,响应头与HttpResponseMessage一起使用,内容头与HttpContent对

  • 我希望返回http状态代码和响应对象。如果我只是在失败场景中返回response object,则状态返回为200。但是我希望将服务返回的状态(例如:403)与响应对象一起发送。但是下面的代码只是返回消息和状态。在这种情况下,我想要响应对象orderdetails对象,它有失败原因和其他字段。如何将对象传递回客户端有什么帮助吗?

  • 问题内容: 在我的DAO层中,我有一个类似的Find函数 因此,为了读取数据,我必须使用Loop(带有) 我的问题是:是否有任何api框架可以轻松地将其转换为对象列表(例如DQCategoryDTO),而无需使用任何循环,迭代器和调用setter / getter来填充值? 问题答案: 您可以使用ResultTransformer,它可以从别名转换为bean(DTO)属性。对于用法,您可以在此处的

  • 问题内容: 如何将对象添加到数组(使用javascript或jquery)?例如,此代码有什么问题? 我想使用此代码在function1数组中保存许多对象,并调用function2在数组中使用该对象。 如何将对象保存在数组中? 如何将对象放入数组并将其保存到变量? 问题答案: 使用Array.push()将任何东西放入数组。 有关数组的更多信息 一次添加多个项目 将项目添加到数组的开头 将一个数组

  • 下面是我正在使用的一段代码: 期望reponse conatins的状态行:“HTTP/1.1400坏请求”想知道这是可以实现的吗?如果是,那么我如何继续做同样的事情。

  • 当我使用MVC控制器时,我使用“返回OK(对象)”或“返回BadRequest(ErrorMessage)”等。 我怎样才能实现这是剃刀页? 我尝试返回新的JSON result(object);这在状态代码为200时有效。但是如果我想返回带有JSON错误消息的状态代码400呢?