본문 바로가기

JAVA/Spring

[API] Swagger @ApiResponse Multi 사용법

 

 

@ApiResponse 란?

해당 Method의 Response 내용을 변경해준다.

 

  • Config 에서 ResponseMessage 처리 하는 것과 동일하다.
  • 각 Method별 에러코드 별도 지정이 가능하다. (코드가 길어짐)
  • @ApiImplicitParam과 동일하게 복수 사용이 가능하다.

코드 별 지정이 가능하나,

동일한 코드에 Message를 담아야 하는 경우는 어떻게 해야할까?

 

	@GetMapping(value="/codegroup")
   	@ApiResponses({
   	 	@ApiResponse(code=200, message="성공입니다."),
		@ApiResponse(code=400, message="비정상적인 접근입니다."),
       		@ApiResponse(code=400, message="등록 되지 않은 유저입니다."),
        	@ApiResponse(code=400, message="인증 횟수를 초과 하였습니다.")
  	})
	public ResponseEntity<Object> getCodegroupList(@RequestParam Map<String, Object> params ) {
		생략;
	}

 

해당 코드처럼 할 경우 맨 처음 선언한 400코드만 보인다.

 

@ApiResponse(code=400, message="비정상적인 접근입니다.")

 

 

Swagger는 이미 @ApiResponses로 여러 코드 값을 작성하게 해주었으니,

동일 코드 값을 반환하는 것은 @ApiResponse 안에서 해결 해야 한다.

 

	@GetMapping(value="/codegroup")
   	@ApiResponses({
   	 	@ApiResponse(code=200, message="성공입니다."),
		@ApiResponse(code=400, message="1. 비정상적인 접근입니다. \r\n 2. 등록 되지 않은 유저입니다. \r\n 3. 인증 횟수를 초과 하였습니다.")
  	})
	public ResponseEntity<Object> getCodegroupList(@RequestParam Map<String, Object> params ) {
		생략;
	}

 

 

@ApiResponse Message 안에 \r\n 으로 줄 바꿈하여 여러 Mesaage들을 담을 수 있다.