Spring Boot + Swagger 연동 방법과 간단한 설정 방법
*maven project에서 springdoc(swagger3)으로 진행
*자세한 설명 생략
▷ Swagger3 연동
*dependency 이후 바로 사용 가능
① pom.xml springdoc dependency
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.7.0</version>
</dependency>
▷ Swagger3 명세서 작성 방법
*Swagger3 주요 Annotation
태그 | 속성 | 설명 |
@Tag | Controller 명세 | |
name | API 그룹 명 | |
description | API 그룹 설명 | |
@Operation | API 명세 | |
summary | API 설명 | |
description | API 상세 설명 | |
@Schema | Model 명세 | |
description | Model 설명 | |
defaultValue | Model default value 지정 |
① Controller, API 명세
*@Tag, @Operation
/**
* 피플 카운터 테스트 데이터 생성 Controller
*/
@Slf4j
@RestController
@RequestMapping("bhs")
@Tag(name = "MKD", description = "테스트 데이터 생성 서비스")
public class MKD1001Controller extends CmmController {
@Autowired
private MKDService mkdService;
@PostMapping("/mkd/mkd1001.do")
@Operation(summary = "BHS-MKD-1001", description = "피플 카운터 테스트 데이터 생성")
public MKD1001ResVO mkd1001(@RequestBody MKD1001ReqVO reqVO, HttpServletRequest req) {
MKD1001ResVO resVO = new MKD1001ResVO();
try {
/** 요청 값 체크 */
if( !"0000".equals(fieldsCheck(req, reqVO, resVO).getResultCode()) ) { return resVO; };
/** 피플 카운터 테스트 데이터 생성 */
resVO = mkdService.getMKD1001(reqVO);
} catch (Exception e) {
resVO.ERR_9999();
log.error("MKD1001 ERR Message :", e);
}
return resVO;
}
}
② Model 명세
*@Schema
/**
* 피플 카운터 테스트 데이터 생성 요청 VO
*/
@Getter
@Setter
@ToString
@Schema(description = "피플 카운터 테스트 데이터 생성 요청 VO")
public class MKD1001ReqVO extends CmmReqVO {
/** 시작 날짜 */
@JsonProperty("startDate")
@Schema(description = "시작 날짜(yyyyMMdd)", defaultValue = "20230101")
public String startDate;
/** 종료 날짜 */
@JsonProperty("endDate")
@Schema(description = "종료 날짜(yyyyMMdd)", defaultValue = "20231231")
public String endDate;
/** 생성 개수 */
@JsonProperty("loopCnt")
@Schema(description = "생성 개수", defaultValue = "1")
public Integer loopCnt;
}
③ Swagger-ui 설정 방법
*SwaggerConfig 파일 생성
*아래 소스는 Swagger UI에서 API를 그룹화하여 구분
*많은 설정이 있지만 여기서는 OpenAPIDefinition , GroupedOpenApi 설정만 다룸
*@OpenAPIDefinition 사용 속성
태그 | 속성 | 설명 |
@Info | 문서 설명 | |
titile | 문서 제목 | |
version | 문서 버전 |
* GroupedOpenApi 사용 속성
속성 | 설명 |
group | 그룹 명(Swagger 문서 definition 명) |
pathsToMatch | 그룹에 속할 API URI Paths |
pathsToExclude | 그룹에서 제외할 API URI Paths |
/**
* Swagger3
*
*/
@OpenAPIDefinition
( info = @Info(title = "[행태분석 솔루션] API 명세서", version = "0.1"))
@Configuration
public class Swagger3Config {
/** API Group */
@Bean
public GroupedOpenApi groupedOpenApi() {
return GroupedOpenApi.builder()
.group("v0.1-BehaviorAnalysis")
.pathsToMatch("/**")
// .pathsToExclude("/bhs/mkd/**")
.build();
}
/** Test Data Make Group */
@Bean
public GroupedOpenApi mkdOpenApi() {
return GroupedOpenApi.builder()
.group("v0.1-MakeTestData")
.pathsToMatch("/bhs/mkd/**")
.build();
}
}
▷ 결과 Swagger3 UI
*http://IP+포트/swagger-ui/index.html
▷ 참고
[Java/Library] Swagger 이해하고 적용하기 : SpringDoc openAPI UI
해당 글에서는 Spring Boot 개발 환경에서 Swagger를 적용하는 방법에 대해서 설명합니다. 1) Swagger 💡 Swagger - RESTful 웹 서비스를 설계, 구축, 문서화 및 사용할 수 있는 오픈 소스 소프트웨어 프레임
adjh54.tistory.com
▷ 관련 글
Swagger 란?
시간 소요가 많고 관리하기 번거롭던 API 명세서 작성 작업을 Swagger를 통해 간단하게 해결 *자세한 설명 생략 ▷ Swagger 란? *OAS : Open API Specification API의 명세(Spec)를 문서화하여 관리하기 위한 프로
coding-today.tistory.com
Swagger3 JWT 인증 설정
Swagger UI에서 API 테스트 시 JWT 인증을 위한 추가 설정 *이전 글에 이어서 작업(관련 글 참고) *자세한 설명 생략 ▷ Swagger-ui 추가 설정 *@SecurityScheme 사용 속성 태그 속성 설명 @SecurityScheme 인증 스키
coding-today.tistory.com
'▶ Back-End > Java' 카테고리의 다른 글
Swagger UI Hangs on Big Json Respones 해결 방법 (0) | 2023.10.18 |
---|---|
Swagger3 JWT 인증 설정 (0) | 2023.10.18 |
로그파일 생성과 관리(logback-spring.xml) (2) | 2023.10.17 |
요청 필드 값 공통 체크 (0) | 2023.10.12 |
VERIFY JWT(nimbus) (0) | 2023.10.12 |
댓글