swagger는 springfox, springdoc-openapi 두 가지가 있다. springfox는 업데이트가 멈춘 상태라 springdoc-openapi를 사용하기로 했다. spring boot 3에서는 버전 2 이상을 사용해야 한다.
build.gradle
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
/swagger-ui/index.html 경로로 접속하면 swagger ui 접속
기본으로 설정된 경로를 수정하려면 아래와 같이 yml 파일에 작성하면 된다.
springdoc:
swagger-ui:
path: /swagger/ui
api-docs:
path: /api/docs
이렇게 입력하면 해당 경로로 접속 되고 아래 주소로 바뀐다.
/swagger/swagger-ui/index.html
일단 중간에 패스를 하나 넣어 주소를 숨길 수 있다.
api json도 마찬가지로 /v3/api-docs → /api/docs로 기본 경로로의 접속을 숨길 수 있다.
OpenAPI Config
@Configuration
public class OpenAPIConfig {
@Bean
public OpenAPI openAPI() {
Info info = new Info()
.title("SIMPLE API")
.description("API of simple sevice")
.version("1.0");
return new OpenAPI()
.info(info);
}
}
이렇게 이름과 설명이 생성된다.

Security 설정
토큰을 사용하여 인증과 인가를 한다면 swagger에서도 사용할 수 있게 설정을 해야한다.
@Configuration
public class OpenAPIConfig {
@Bean
public OpenAPI openAPI() {
SecurityScheme securityScheme = new SecurityScheme()
.type(SecurityScheme.Type.HTTP)
.scheme("bearer")
.bearerFormat("JWT")
.in(SecurityScheme.In.HEADER)
.name("Authorization");
SecurityRequirement securityRequirement = new SecurityRequirement().addList("JWT");
Info info = new Info()
.title("SIMPLE API")
.description("API of simple sevice")
.version("1.0");
return new OpenAPI()
.components(new Components().addSecuritySchemes("JWT", securityScheme))
.security(Arrays.asList(securityRequirement))
.info(info);
}
}
- 요청 헤더에 Authorization을 추가하고 bearer jwt 토큰 사용 설정
Authorize 버튼이 생기고 토큰을 입력할 수 있는 칸이 뜬다

'개발 > Spring' 카테고리의 다른 글
| [Querydsl] PageableExecutionUtils count query 오류 (0) | 2024.10.20 |
|---|---|
| [SpringBoot] 이메일 전송 2탄 (네이버메일) (0) | 2024.06.05 |
| [batch] spring boot3에서 배치 실행이 안됨 (1) | 2024.02.08 |
| 외부 api 연동하기(retrofit2, form urlencoded) (0) | 2023.12.14 |
| WebMvcTest 실행 시 발생한 오류 정리 (0) | 2023.09.08 |