참고
implementation "org.springdoc:springdoc-openapi-ui:1.7.0"
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.components(new Components())
.info(new Info()
.title("REST API 테스트 제목")
.description("이것은 REST API 테스트 앱입니다.")
.version("1.0")
.contact(new Contact()
.name("zhyun")
.url("https://www.zhyun.kim")
.email("gimwlgus@kakao.com"))
.license(new License()
.name("Apache 2.0")
.url("https://www.apache.org/licenses/LICENSE-2.0")));
}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "사용자 상세 정보를 위한 도메인 객체")
public class User {
private Integer id;
@Schema(description = "사용자의 이름을 입력해주세요.")
@Size(min = 2, message = "2글자 이상 입력해주세요.")
private String name;
@Schema(description = "사용자의 등록일을 입력해주세요.")
@Past
private LocalDateTime joinDate;
@Schema(description = "사용자의 비밀번호를 입력해주세요.")
private String password;
@Schema(description = "사용자의 주민번호를 입력해주세요.")
private String ssn;
}
springFox → springDoc
@Api
→ @Tag
@ApiIgnore
→ @Parameter(hidden = true) or @Operation(hidden = true) or@Hidden
@ApiImplicitParam
→ @Parameter
@ApiImplicitParams
→ @Parameters
@ApiModel
→@Schema
@ApiModelProperty
→@Schema
@ApiModelProperty(hidden = true)
→ @Schema(accessMode = READ_ONLY)
@ApiOperation(value = "foo", notes = "bar")
→ @Operation(summary = "foo", description = "bar")
@ApiParam
→ @Parameter
@ApiResponse(code = 404, message = "foo")
→ @ApiResponse(responseCode = "404", description = "foo")