- [JPA] 31. RestAPI 주소설계와 세팅2024년 10월 23일
- Song hyun
- 작성자
- 2024.10.23.:20
728x90반응형[JPA] 31. RestAPI 주소설계와 세팅
1. yml - mustache 삭제
mustache: servlet: expose-session-attributes: true # Mustache ????? ?? ??? ??? ? ??? ?? expose-request-attributes: true # Mustache ????? ?? ??? ??? ? ??? ??
2. [templates] 폴더 내부의 mustache 파일 모두 삭제
3. 페이지 요청 메서드 삭제
4. WebConfig 수정
@Override public void addInterceptors(InterceptorRegistry registry) { // 로그인 인터셉터 등록 registry.addInterceptor(loginInterceptor) .addPathPatterns("api/**") // 인터셉터를 적용할 경로 패턴 설정 .excludePathPatterns("/board/{id:\\d+}"); // 인터셉터 적용에서 제외할 URL 패턴 설정 // /board/1, /board/33 <-- 로그인 인터셉터에서 제외 // \d+ 숫자 하나 이상을 의미하는 정규 표현식 패턴 // 관리자용 인터셉터 등록 }
5. Restful API 주소설계
(1) 회원 정보 관리
- 회원 가입 -> @PostMapping("/join")
- 로그인 -> @PostMapping("/login")
- 로그아웃 -> @GetMapping("/logout")
- 회원정보 수정 -> @PutMapping("/api/users/{id}")
- 회원정보 수정 페이지 -> @GetMapping ("/api/users/{id}")
(2) 게시글
- 게시글 전체 조회 -> @GetMapping("/"), @GetMapping("/boards")
- 게시글 삭제 -> @DeleteMapping("/api/boards/{id}")
- 게시글 수정 -> @PutMapping("/api/boards/{id}")
- 게시글 등록 -> @PostMapping("/api/boards")
- 게시글 상세 보기 -> @GetMapping("/boards/{id}")
(3) 댓글
- 댓글 삭제 -> @DeleteMapping("/api/replies/{id}")
- 댓글 등록 -> @PostMapping("/api/replies")
*Restful API 주소 설계에 기반한 메서드 수정 예시
/** * 사용자 정보 수정 * @param updateDTO * @return 메인 페이지 */ @PutMapping("/api/users/{id}") public String update(@RequestBody UserDTO.UpdateDTO updateDTO) { User sessionUser = (User) session.getAttribute("sessionUser"); if (sessionUser == null) { return "redirect:/login-form"; } User updatedUser = userService.updateUser(sessionUser.getId(), updateDTO); // 세션 정보 동기화 처리 session.setAttribute("sessionUser", updatedUser); return "redirect:/"; }
728x90반응형'JPA' 카테고리의 다른 글
[JPA] 34. RestAPI에 기반한 회원가입 기능 만들기 (3) 2024.10.23 [JPA] 32. 공통 응답 DTO 및 예외 처리 구조 만들기 (0) 2024.10.23 [JPA] 30. RestAPI 주소 설계 규칙 (0) 2024.10.21 [JPA] 29. CORS란 뭘까? (0) 2024.10.21 [JPA] 28. 댓글 쓰기 및 삭제 및 인터셉터 적용 (2) 2024.10.17 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)