REST 방식으로 처리할 때 주의해야 하는 점은 브라우저나 외부에서 서버를 호출할 때 데이터의 포맷과 서버에서 보내주는 데이터의 타입을 명확히 설계해야 하는 것
예를 들어 댓글 등록의 경우 브라우저에서는 JSON타입으로 된 댓글 데이터를 전송하고, 서버에서는 댓글의 처리 결과가 정상적으로 되었는지 문자열로 결과를 알려 주도록 함

 

// consumes : 들어오는 데이터 타입 정의
// produces : 반환하는 데이터 타입 정의

@PostMapping(value ="/new", consumes = "application/json", produces = { MediaType.TEXT_PLAIN_VALUE })
public ResponseEntity<String> create(@RequestBody ReplyVO vo) {

	log.info("ReplyVO : " + vo);
	int insertCount = service.register(vo);
	log.info(Reply INSERT COUNT : " + insertcount);
	
	return insertCount == 1 ? new ResponseEntity<>("success", HttpStatus.OK) : new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}

 

- @PostMapping으로 POST 방식으로만 동작하도록 설계하고, consumes와 produces를 이용해서 JSON 방식의 데이터만 처리하도록 하고, 문자열을 반환하도록 설계
- 파라미터는 @RequestBody를 적용해서 JSON 데이터를 ReplyVO 타입으로 변환하도록 지정
- 댓글이 추가된 숫자를 확인해서 브라우저에서 '200 OK' or '500 Internal Server Error'를 반환하도록 함

+ Recent posts