BE 재원
Spring Boot ver : 3.1.0
Java ver : 17
[ build.gradle 설정 ]
1. springdoc-openapi-ui:1.6.9 적용 [실패]
dependencies {
implementation 'org.springdoc:springdoc-openapi-ui:1.6.9'
}
2. springdoc-openapi-ui:1.7.0 적용 [실패]
dependencies {
implementation 'org.springdoc:springdoc-openapi-ui:1.7.0'
}
3. Springfox Swagger 3.0.0 적용 [실패]
dependencies {
implementation 'io.springfox:springfox-swagger2:3.0.0'
implementation 'io.springfox:springfox-swagger-ui:3.0.0'
// or
implementation 'io.springfox:springfox-boot-starter:3.0.0'
// Swagger 3.0.0 부터는 1개의 종속성만 추가해도 됨
// localhost:8080/swagger-ui/index.html
}
4. springdoc-openapi-starter-webmvc-ui 적용 [성공]
# build.gradle
dependencies {
// swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
}
# SwaggerConfig.java
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import lombok.RequiredArgsConstructor;
@OpenAPIDefinition(
info = @Info(title = "타이틀 : 제목 작성",
description = "간단한 description 작성",
version = "v1"))
@RequiredArgsConstructor
@Configuration
public class SwaggerConfig {
@Bean
public GroupedOpenApi chatOpenApi() {
String[] paths = {"/v1/**"};
return GroupedOpenApi.builder()
.group("나만의 서비스")
.pathsToMatch(paths)
.build();
}
}
# TestController.java
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@RequestMapping("/v1")
public class TestController {
private final TestService testService;
/**
* Swagger 작동 테스트 Controller
*/
@GetMapping("/say/test")
public String testConOne(String inputSomething) {
return inputSomething;
}
@GetMapping("/say/haha")
public String testTwo(String gogo) {
return gogo;
}
@GetMapping("/say/getDate")
public String connDB() {
String time = testService.timeTest();
return time;
}
}
# application.yml -> [연구중]
# swagger
springdoc:
swagger-ui:
path: /swagger-ui.html
groups-order: DESC
operationsSorter: method
disable-swagger-default-url: true
display-request-duration: true
api-docs:
path: /api-docs
show-actuator: true
default-consumes-media-type: application/json
default-produces-media-type: application/json
paths-to-match:
- /v1/**
상기 paths-to-match 는 효과가 있는것인가?
일딴 상기처럼 설정해주면 swagger 정상 작동함.
localhost:8080/swagger-ui.html
or
localhost:8080/swagger-ui/index.html
References
https://stackoverflow.com/questions/74614369/how-to-run-swagger-3-on-spring-boot-3
How to run Swagger 3 on Spring Boot 3
Using a fresh Spring Initialzr with Java17 and Spring Boot 3.0.0, and an extra addition to the pom.xml for Springfox Swagger 3, I can't for the life of me get Swagger pages to work. Instead, I get ...
stackoverflow.com
https://velog.io/@kjgi73k/Springboot3%EC%97%90-Swagger3%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0
Springboot 3.x에 Swagger를 적용시켜보자!
Springboot 3.0.1에서 Swagger 3.0.0을 적용 중 발생하는 에러들을 해결해 보자
velog.io