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'를 반환하도록 함
'프로그래밍 > Spring' 카테고리의 다른 글
댓글 처리와 JavaScript의 모듈화 (0) | 2022.02.23 |
---|---|
[Mybatis] <trim> (0) | 2022.02.18 |
request.getParameter 조건 빈칸, null 주의 사항 (0) | 2022.01.26 |
[Spring-security] JDBC를 이용한 쿼리 호출시 log에창 안뜨는 문제 (0) | 2021.05.21 |
[Spring Security]Spring project에 Spring Security 적용 (0) | 2021.05.20 |