@GetMapping 댓글 조회
전체 댓글 목록을 조회하는 list 메서드를 생성해봅시다.
이번엔 파라미터에 @PathVariable 어노테이션을 사용해볼 겁니다.
이는 상단의 {bno}자리에 들어온 요소를
?bno = {bno} 와 같이 간주한다는 의미입니다.
그리고 produces를 확장해서 XML, JSON을 모두 다루게 해보겠습니다.
단일 숫자데이터 bno를 받도록 @PathVariable을 설정했습니다.
PathVariable 어노테이션으로 이미 입력데이터가
명시되었으므로 consumes는 따로 주지 않아도 됩니다.
produces는 댓글 목록이 XML로도, JSON으로도 표현될 수 있도록
MediaType.APPLICATION_ATOM_XML_VALUE
MediaType.APPLICATION_JSON_UTF8_VALUE
를 명시해주었습니다.
pom.xml에 jackson-dataformal-xml을 추가해놓았기 때문에
xml에서도 정상 작동합니다.
빈 Entity 생성 후에 try catch 구문 내부에서 서비스를 호출하고
에러 시 디버깅도 작성해줍니다.
모든 작업이 끝난 후 entity를 return하면
비동기 list 호출이 가능해졌습니다.
비동기 list 호출
어제 댓글 하나를 작성해보았던
1311020 번 글의 댓글 list를 호출해보겠습니다.
YARC에서 알맞은 URL을 입력 후 GET 방식으로 동작하면
좋습니다.
아래는 컨트롤러 내부의 list 메서드 전문입니다.
@GetMapping(value="/all/{bno}",
produces = {MediaType.APPLICATION_ATOM_XML_VALUE ,
MediaType.APPLICATION_JSON_UTF8_VALUE})
public ResponseEntity<List<ReplyVO>> list (@PathVariable("bno") Long bno) {
ResponseEntity<List<ReplyVO>> entity = null;
try {
entity = new ResponseEntity<>(service.listReply(bno), HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
entity = new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
return entity;
}
Get방식이기 때문에 서버가 켜져 있으면
브라우저에서도 조회가 가능합니다.
.json으로 한 번 조회해보겠습니다.
아주 좋습니다.