【发布时间】:2021-07-19 10:13:08
【问题描述】:
我是一名想使用spring实现api服务器的学生。
目前,我使用每个 api 的请求和响应。 (如果存在用于登录的api,我创建了AccountSignInDto.Request,AccountSignInResponse。)但是,我觉得重复代码越来越多。
我想知道如何重用多个 dto 以减少重复代码。
详情如下。
- AccountCreateDto.java
- AccountFindIdByEmailDto.java
- AccountFindPasswordDto.java
- AccountReadDto.java
- AccountSignInDto.java
- AccountUpdateDto.java
- QuestionReadDto.java
package com.se.apiserver.v1.account.application.dto;
import com.se.apiserver.v1.account.domain.entity.AccountType;
import javax.validation.constraints.Email;
import javax.validation.constraints.Size;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
public class AccountCreateDto {
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("signIn request")
@Builder
static public class Request {
@ApiModelProperty(example = "account", notes = "id")
@Size(min = 4, max = 20)
private String id;
@ApiModelProperty(example = "password", notes = "password")
@Size(min = 8, max = 20)
private String password;
@ApiModelProperty(example = "name", notes = "name")
@Size(min = 2, max = 20)
private String name;
@ApiModelProperty(example = "nickname", notes = "nick-name")
@Size(min = 2, max = 20)
private String nickname;
@ApiModelProperty(example = "11110000", notes = "stu-num")
@Size(min = 8, max = 20)
private String studentId;
@ApiModelProperty(example = "STUDENT", notes = "account type")
private AccountType type;
@ApiModelProperty(example = "01012345678", notes = "phone-number, 00011112222")
@Size(min = 10, max = 20)
private String phoneNumber;
@ApiModelProperty(example = "abc@def.com", notes = "email")
@Email
private String email;
@ApiModelProperty(example = "1", notes = "question number")
private Long questionId;
@ApiModelProperty(example = "region", notes = "answer")
@Size(min = 2, max = 100)
private String answer;
}
@Data
@AllArgsConstructor
@ApiModel("signIn response")
static public class Response {
@ApiModelProperty(example = "1", notes = "account pk")
private Long id;
}
}
对不起,我的英语很差。 提前致谢!
【问题讨论】:
标签: java spring-boot dto