카테고리 없음
Spring Swagger 3 적용
lovineff
2021. 3. 19. 17:30
build.gradle 파일내 의존성 추가
implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.5.2'
Configuration 추가 (yml 설정으로 대체 가능)
@Configuration
public class SwaggerConfig{
// 아래 설정은 설정 yml 파일에 선언 가능하나 설정파일이 너무 길어지므로 class에 선언한다.
// OpenApi 기본 설정
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("API")
.description("API application")
.contact(new Contact().name("name"))
// .license(new License().name("Apache 2.0").url("http://springdoc.org"))
)
// .externalDocs(new ExternalDocumentation()
// .description("Wiki Documentation")
// .url("http://")
// )
;
}
// api 버전별 url 설정(api 버전 변경시 아래 빈 설정을 추가한다)
@Bean
public GroupedOpenApi apiV1() {
return GroupedOpenApi.builder()
.group("api-version-1")
.pathsToMatch("/**") // 처리될 url
.pathsToExclude("/test/**", "/test2/**") // 제외 url
.build();
}
}
프로잭트 빌드 및 재시작
접근 URL
lswagger-ui.htmlswagger-ui.html
컨트롤러내 설정법
자세한 사용법은 공식 홈페이지의 문서를 참고한다.
@Tag(name = "abc 컨텐츠 조회, 생성")
@Slf4j
@RequiredArgsConstructor
@RestController
@RequestMapping("/abc")
public class AbcController {
@Operation(
summary = "요약" // API 요약
, description = "설명"// API 선택시 보여주는 설명
)
@Parameters({
@Parameter(name = "abc", description = "컬럼 설명", required = true)
})
@ResponseBody
@PostMapping("/post/url")
public DeferredResult<Integer> postUrl(@RequestBody Abc abc) {
// ...
}
}