- 문서관리를 위하여 swagger 사용 (1.6.9)
- dependency 추가
<!-- swagger -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.9</version>
</dependency>
- swagger은 springboot 버전별로 호환이 안될수 있다.
- ex) swagger - 1.6.9 라면 springboot version - 2.7.2 로 변경
- config.java 생성
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class swaggerConfig { // extends WebMvcConfigurationSupport
@Bean
public OpenAPI api(@Value("${springdoc.swagger-ui.version}") String springdocVersion) {
Info info = new Info()
.title("My API")
.version(springdocVersion)
.description("API between product and AI");
return new OpenAPI()
.components(new Components())
.info(info);
}
}
- application.properties 수정
- springdoc.packages-to-scan=com.min.stu.Controller 부분은 알맞게 수정할 것
server.port=6406
logging.config=classpath:logback-spring.xml
springdoc.swagger-ui.version=v1.0.0
springdoc.packages-to-scan=com.min.stu.Controller
springdoc.swagger-ui.tags-sorter=alpha
springdoc.swagger-ui.operations-sorter=alpha
springdoc.api-docs.path=/api-docs/json
springdoc.api-docs.groups.enabled=true
springdoc.cache.disabled=true
springdoc.default-consumes-media-type=application/json;charset=UTF-8
springdoc.default-produces-media-type=application/json;charset=UTF-8
- controller에서 사용
@Operation(summary = "ES insert api",description = "indexName과 jsonData를 받아 ES에 insert 해주는 api")
@PostMapping("/esInsert")
public String insertApi(String indexName , String json){
elasticService elasticService = new elasticService();
String result = elasticService.insert(indexName,json);
return result;
}
2. 실행 후 설정한 doc path로 들어가 확인. - ex) localhost:6406/swagger-ui/index.html