Spring Boot Handsonlab (KSUG) — (6)

  • 게시물 수정하고 삭제하기

1 2 3 4 5 6

1. 수정/삭제 기능 추가

Post 클래스에 위 그림과 같이 update() 메소드를 추가한다. 입력 받은 값을 저장해 두고 자신을 반환한다. 이 메소드는 BoardService에서 호출하게 된다.

BoardService 클래스에 게시글을 수정하기 위한 editPost()메소드와 삭제를 위한 erasePost() 메소드를 위 그림과 같이 추가한다.

editPost()메소드의 첫 번째 파라미터로 long 타입의 게시글을 식별 할 수 있는 아이디 값을 받아서 해당 Post 객체를 얻어오기 위해 getPost() 메소드를 호출한다. 찾아온 post 객체의 update() 메소드에 파라미터로 입력 받은 작성자, 제목, 내용을 전달하여 수정하고 결과 값(Post)을 반환한다.

erasePost() 메소드는 게시글 식별 아이디를 받아서 얻어낸 Post 객체를 postRepository 객체의 delete() 메소드 인자로 보내어 삭제 하도록 한 후 반환한다.

2. BoardController 에 수정/삭제 추가

BoardController 클래스에 위 그림과 같이 수정을 위해 updatePost() 메소드와 삭제를 위한 deletePost() 메소드를 추가한다.

updatePost() 메소드에는 맵핑 값이 “/{boardname}/{postId}”로 지정하여 “http://localhost:8080/board/게시판이름/게시글아이디" 형태의 주소 요청이 되고, 전송 방식이 PUT 이면 호출된다. 메소드 내부에서 boardService객체의 editPost()메소드에 입력 받은 파라미터 값들을 전달하여 호출하고 결과를 ResponseEntity의 ok(200응답코드)에 대해 담아서 반환한다.

deletePost()메소드의 맵핑 값도 역시 “/{boardname}/{postId}”로 지정한다. 요청 맵핑과 전송 방식이 DELETE 여야만 호출된다. 메소드 내부에서 boardService 객체의 erasePost() 메소드에 게시글 아이디를 전달하여 호출하고 결과를 ResponseEntity의 ok(200응답코드)에 대해 담아서 반환한다.

3. 필터 설정 추가하기(PUT)

우선 PUT 방식의 요청을 받아서 처리하기 위해 필터를 빈으로 등록해야 한다. WebMvcAutoConfigurationAdapter를 상속 받아 WebConfig 클래스를 demo.ksug.webservice 패키지에 추가한다. HttpPutFormContentFilter 객체를 반환하는 httpPutFormContentFilter() 메소드를 추가한다.

4. Postman 에서 삭제/수정 하기

지난 시간에 만들었던 게시글 쓰기 기능을 사용해서 1,2,3 번의 id를 갖도록 세 개의 게시글을 등록한다.

GET 방식으로 http://localhost:8080/notice/list 주소를 요청하여 세 개의 게시글(Post)가 등록된 것을 확인한다.

DELETE 방식으로 http://localhost:8080/board/notice/2 주소를 요청하고 결과로 2번 게시글이 반환되는 것을 확인한다.

다시 한번 목록을 뿌려봅니다. 2번 게시글이 삭제된 것을 확인 할 수 있다.

PUT 방식으로 http://localhost:8080/board/notice/3 주소를 요청하고 결과에 입력된 값으로 변환된 것을 확인한다. 주의할 것은 x-www-form-urlencoded가 선택된 상태로 요청해야 한다.

마지막으로 목록을 호출해서 변환된 것을 확인한다.

끝까지 따라오시느라 수고 많으셨습니다. 스프링 부트 핸즈온랩을 이끌어 주신 박용권님께 감사드리며, 미흡하지만 이렇게 정리할 수 있도록 밤낮 없이 도와주신 KSUG 회원님들께 감사드립니다.


with 인텔리제이

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.