안녕하세요. 개인 프로젝트를 진행하다 이해가 안되는 부분이 있어서 질문드립니다. 맛집 서비스를 위한 REST API (HTTPS)를 구성하는 프로젝트로, 맛집 정보들은 DB를 사용하여 관리 REST API는 CRUD 연산을 제공 할 것입니다. 일단 프론트단을 제외하고 백만 개발한거라 @RestController를 사용해서 테스트를 끝냈는데, 이제 프론트까지 개발하려고 하니 @RestController는 json 형식으로 데이터를 받잖아요. 화면을 생성해야하는데 @RestController와 별개로 새로운 클래스를 생성하여 @Controller를 붙여 뷰단만 따로 관리하는 컨트롤러를 생성하는게 좋을까요? @RestController는 REST API를 관리하는 컨트롤러, @Controller는 화면단만 관리하는 컨트롤러로 각각 생성하는게 좋은건지 아니면 개발했던 @RestController에 ModelAndView를 활용하는 것 중 뭐가 더 나은건지? 궁금해요. 찾아보니 RestController에 화면을 줄때 자바스크립트나 ajax를 사용하는 방법이 있긴한데 보통 뭐를 더 사용하고 뭐가 더 좋은지 궁금합니다.
안녕하십니까 혼자 실습하는 중에 궁금한 점이 생겨 질문드립니다. 강의에서 @ResponseBody는 객체를 받아서 HTTP 메시지 컨버터를 통해 JSON 응답을 하는 것으로 배웠습니다. postman 에서 api test 을 한 스샷입니다 그리고 디스패쳐 url-mapping을 *.h로 했습니다 그리고 spring 소스와 설정내용이 아래와같습니다 추가적으로 디스패쳐 url-pattern을 /* 으로 변경해서 api test을 하면 url 확장자를 다르게 써서 하면 json 응답데이타를 받습니다 확장자 .h 뿐만아니라 .hh로 끝나는 url도 위와같이 406에러가납니다 왜 그런지 도무지 감이 안옵니다 답변 부탁드립니다
RestController 가 있습니다 @PostMapping("/request") public ResponseEntity<> save(someDto dto) throws UnsupportedEncodingException, Exception { if(isAdmin()){ return new ResponseEntity<>( 어드민이 아닙니다,HttpStatus.BAD_REQUEST); } try { AService.save(dto.toEntity()); // 주문 생성 BService.createEstimate(dto.toEntity()); // 견적 생성 } catch (Exception e) { return new ResponseEntity<>(저장이 안되었다는 메세지,HttpStatus.BAD_REQUEST); } return new ResponseEntity<>(저장이 되었다는 메세지,HttpStatus.OK); } AService입니다 @Transactional(rollbackFor = {Exception.class}) public void save(Entity entity) throws Exception{ entityRepo.save(entity); } BService입니다 @Transactional(rollbackFor = {Exception.class}) public void createEstimate(Entity entity) throws Exception { entityRepo.save(entity); } 위와 같이 rest controller에도 throw exception과 동시에 저장,견적 을 생성하는 서비스를 각각 호출합니다.(서로 다른 클래스) 그런데 그 서비스에도 다 throw exception을 하고 있습니다. 어노테이션으로 Transactional(rollbackFor exception)을 하고 있고요. 위와 같이 코드를 작성하는 방법은 틀린것인가요?