반응형
Http Method : Get 으로 설정 후
Request Data를 @RequestBody로 설정하여 Json으로 처리 할 때,
@Operation(summary = "목록 조회")
@GetMapping (value="/list")
public Object list (
@Valid @RequestBody ReqVo req) {
......
Swagger 화면
요청 시, 서버 에러
java.lang.StringIndexOutOfBoundsException: begin -1, end -1, length 329
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
at java.base/java.lang.String.substring(String.java:1874)
....
Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing:
<<Required request body is missing>>
이유?
Swagger에서는 Request Method=POST, PUT,PATCH 만 request body를 사용 할 수 있음.
그래서 @GetMapping의 request data에서 @RequestMapping -> @RequestParam으로 변경함.
@Operation(summary = "목록 조회")
@GetMapping (value="/list")
public Object list (
@Valid @RequestParam ReqVo req) {
......
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
@Getter
@Setter
public class ReqVo {
@NotNull(message = "구분값이 없습니다.")
@Pattern(regexp= "A|M", message = "구분값이 잘 못 입력되었습니다.")
@Schema(description = "구문값(A=관리자,M=회원)", example = "A")
String type;
}
Swagger에서 요청 하니, 결과는 정상이나 Name과 Description이 안보임
@RequestParam ReqVo req 설정된 req가 Name으로 나옴.
다시 설정
@Operation(summary = "목록 조회")
@GetMapping (value="/list")
@Parameter(name="type", description = "구문값(A=관리자,M=회원)", example = "A")
public Object list (
@Valid @Schema(hidden = true) ReqVo req) {
return true;
}
@RequestParam 설정은 가리고, @Parameter 입력 부로 잘 보임
정상!
반응형
'skill > Java.Kotlin' 카테고리의 다른 글
[springboot] yml 과 Properties 설정 (1) | 2023.11.21 |
---|---|
[Java] springframework get method request param 배열일 경우, 콤마가 배열로 나눠서 오는 경우 error (0) | 2023.10.18 |
Json Data 시, 응답에 특정 데이터 제외 처리 (0) | 2023.08.07 |
[Error] ClassNotFoundException: org.apache.http.impl.client.HttpClients (0) | 2023.02.22 |
Springboot request param VO class로 받을 시, 필수 값 null일 경우 exception handler 처리 (0) | 2023.02.01 |