블로그 개발 프로젝트
Swagger @ApiModelProperty에 example List
한뜨응규
2023. 7. 28. 10:12
반응형
이번 프론트 팀의 마지막 부탁
Example Value에도 리스트로 보이게 해주세요.
현재
이렇게 보이지만 skillTag는 List이기 때문에 하나 이상 리스트로 보여지게 해야한다.
Dto를 살펴보면
package cobo.blog.domain.Home.Data.Dto;
import cobo.blog.global.Data.Entity.ProjectEntity;
import cobo.blog.global.Data.Entity.ProjectSkillTagMappingEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class HomeProjectRes {
@ApiModelProperty(
value = "프로젝트의 소개 이미지 url",
example = "https://avatars.githubusercontent.com/u/98071131?s=400&u=9107a0b50b52da5bbc8528157eed1cca34feb3c5&v=4"
)
private String imgUrl;
@ApiModelProperty(
value = "프로젝트의 타이틀",
example = "블로그 개발 프로젝트"
)
private String title;
@ApiModelProperty(
value = "프로필에 사용된 스킬들을 문자열",
example = "SpringBoot"
)
private List<String> skillTag;
public HomeProjectRes(ProjectEntity project) {
this.imgUrl = project.getImgUrl();
this.title = project.getTitle();
this.skillTag = new ArrayList<>();
for(ProjectSkillTagMappingEntity projectSkillTagMappingEntity : project.getProjectSkillTagMappings())
skillTag.add(projectSkillTagMappingEntity.getSkillTag().getName());
}
}
이렇게 되어 있다.
현재 example에 SpringBoot라고만 있기 때문에 그냥 SpringBoot 하나만 띡 보여지게 되는 것이다.
이거를 문자열이기에
example = "[\"SpringBoot\", \"JavaScript\", \"MySQL\"]"
그냥 간단하게 이렇게만 고쳐주었다.
이러면
이렇게 원하는 대로 출력이 되게 된다.
하지만 이게 무슨 데이터타입인지 더 구체적으로 알려주기 위해 dataType = "List"를 추가했다.
최종 코드이다.
@ApiModelProperty(
value = "프로필에 사용된 스킬들을 문자열",
dataType = "List",
example = "[\"SpringBoot\", \"JavaScript\", \"MySQL\"]"
)