Java请求体和响应体

发布于:2024-04-27 ⋅ 阅读:(34) ⋅ 点赞:(0)

请求体

@Data
@JsonNaming(value = PropertyNamingStrategies.UpperCamelCaseStrategy.class)
public abstract class ApiReq implements LRequest {
    private String requestID;
}

响应体

@Data
@JsonNaming(value = PropertyNamingStrategies.UpperCamelCaseStrategy.class)
public abstract class LBaseResp implements LResponse {

    @Schema(description = "请求ID")
    private String requestID;

    @Schema(description = "错误信息")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Error error;

}

这样做的好处:

这样的设计有以下几个好处:

  1. 代码复用与扩展性通过将ApiReq设计为抽象类,你可以定义所有API请求通用的属性和方法。任何具体的API请求类只需继承ApiReq类,就可以自动获得这些通用功能,同时还可以添加自己的特定功能。这种设计使得代码更加复用和模块化,也更容易扩展。

  2. 标准化的JSON命名:使用@JsonNaming注解确保了所有继承自ApiReq的类的JSON输出都将遵循大驼峰命名法。这有助于保持API的一致性和可预测性,使得前端或其他客户端更容易解析和理解返回的JSON数据。

  3. 简化代码:通过使用Lombok的@Data注解,你无需手动编写getter、setter、equals()hashCode()toString()等方法,这大大减少了代码量,并降低了出错的可能性。同时,这也让代码更加整洁和易于阅读。

  4. 接口实现:ApiReq类实现了LRequest接口,这意味着它承诺提供该接口定义的所有方法。这有助于确保所有API请求类都遵循相同的接口规范,从而使得代码更加一致和可维护。

  5. 灵活性:尽管requestID是一个私有属性,但由于它是抽象类的一部分,子类可以根据需要选择是否覆盖其getter和setter方法,或者添加额外的逻辑。这种设计提供了足够的灵活性,以适应不同的API请求需求。

综上所述,这样的设计结合了抽象类、接口、注解和Lombok库的优点,使得代码更加复用、模块化、一致和易于维护。