-
[Spring] springdoc swagger에서 LocalTime 변수를 string으로 받기 (feat. @Schema)Backend/Spring 2023. 5. 29. 21:56728x90
LocalTime 변수를 swagger에서는 어떻게 받을까?
시간:분 형식의 데이터를 받기위해 LocalTime을 사용했다. 이때 JsonFormat을 사용해 pattern을 내가 원하는 형식으로 지정해준 상태였다.
이때 swagger에서 확인해본 형식은 다음처럼 시간, 분, 초를 따로 받고 있었다. 여기서 string형으로 패턴을 지켜 요청하면 정상적으로 잘 동작했다. 따라서 이를 string으로 받겠다는 정의가 필요했다.
LocalTime 변수를 String으로 받기
검새해보았을 때 springfox 관련 설정이 많이 보였다. springfox의 경우 swagger config 시에 directModelSubstitude 메소드를 사용해서 설정해줄 수 있다고 한다.
@Bean public Docket postsApi() { return new Docket(DocumentationType.SWAGGER_2)//.groupName("public-api") .directModelSubstitute(LocalDateTime.class, String.class) .directModelSubstitute(LocalDate.class, String.class) .directModelSubstitute(LocalTime.class, String.class) .directModelSubstitute(ZonedDateTime.class, String.class) .apiInfo(apiInfo()) ... }
그럼 springdoc에서는 어떻게 할 수 있을까?
@Schema 애노테이션을 사용하여 가능하다. request body나 response body에 설명을 해주는 애노테이션인데, 번거로워서 따로 작성하지 않았는데 깜빡 있고있었다.
@Schema
request body나 response body에 설명을 해주는 애노테이션
- 파라미터
- description : 변수 설명
- example : 예시 ex) example = "10:00"
- hidden : swagger 숨김
- type : 변수 타입 설정 !!
@Schema의 type을 string으로 설정해주어 LocalTime을 시, 분, 초 각각 받는 것이 아닌 string으로 받을 수 있었다.
728x90'Backend > Spring' 카테고리의 다른 글
[Spring Error] Error creating bean with name 'entitymanagerfactory' (feat. spring boot 3.0 과 mysql 연결) (0) 2023.05.30 [Spring] Spring Boot 3.0.6 JPA에서 MySQL 연결하기 (0) 2023.05.30 [Spring Error] Spring Boot 3.x에서 Swagger 설정 시 404 Error (0) 2023.05.27 [Spring] Swagger에서 JWT관련 설정하기 (Authorization, ArgumentResolver) (0) 2023.05.27 [Spring] Spring Boot 3.x에서 Swagger 설정하기 (0) 2023.05.27 - 파라미터