728x90 반응형 SMALL Spring공부/1-REST13 @DeleteMapping 값 넘기기 / delete 값 보내기 / Rest API delete 값 / Rest api delete 파라미터 / Rest api delete 헤더 / Rest api delete 사용하는 방법 / @DeleteMapping 해더 / @DeleteMapping 파라미터 / @DeleteMapping body REST API Method 중 Get / Post에 대해서는 일반적인 프로젝트에서 많이 사용한다. 그런데 delete 관련되어서 정보가 많이 없다. REST API 에 대해 엄격하게 사용하려한다면 참고될 만한 포스팅 @DeleteMapping 서버단으로 값을 넘기는 3가지 방법 Paramiter (파라미터) 로 넘기기 PathVariable (패쓰배리어블) 로 넘기기 헤더에 정보를 담아 보내기 각 방법에 대한 설명 (파라미터 - > 패쓰배리어블 -> 헤더 순으로 진행) 테스트 환경 내가 보낼 데이터 var inData = { name : 'kimeunho' }; 나의 개인정보를 보낼 것이다. 최소 이름정도로 하자. 내 이름 또는 이에 준하는 ID라던가 Primary - Key값 정도되는 정보가 되어야한.. 2022. 12. 11. pull-request 깃허브를 이용해서 브랜치관리하는 것도 올려보겠다. 나의 경우는 이렇게 스프링학습내용을 통으로 리파지토리를 만들어서 깃허브로 관리하고있다. 브랜치는 현재 이렇게 있다. ??? : 엥 dev_search는 무슨 브랜치래요? 이거 실수한거아님? 이렇게 생각할 수 있다. 현재 블로그엔 작성되어있진 않지만 게시판에서 게시글을 출력하는 단계를 구현한 브랜치이다. 이미 이것은 구현을 완료해서 pull request를 하였다. 풀리퀘스트를 해보자 내용을 작성한다. 이때 내용은 자세히 작성하면 좋다. 어떤작업을 하였고, 이슈는 어떻고 테스트결과는 그래서 어떻게 완료해서 풀 리퀘스트를 한다 등 내용을 적어야하지만 내가 학습한내용은 그렇게 복잡한 내용이 아니었기에 명확히 내가 한 내용만 적어준다 그럼 위처럼 4일간 23개 .. 2021. 10. 11. REST방식(9)-댓글페이징처리 댓글의 화면 처리는 다음과 같은 방식으로 처리한다. 1. 게시물을 조회하는 페이지에 들어오면 기본적으로 가장 오래된 댓글들을 가져와서 1페이지에 보여준다. 2. 1페이지의 게시물을 가져올 때 해당 게시물의 댓글의 숫자를 파악해서 댓글의 페이지 번호를 출력한다. 3. 댓글이 추가되면 댓글의 숫자만을 가져와서 최종 페이지를 찾아서 이동 4. 댓글의 수정과 삭제 후에는 다시 동일 페이지를 호출 댓글 페이지 계산과 출력 Ajax로 가져오는 데이터가 replyCnt와 list라는 데이터로 구성되므로 이를 처리하는 reply.js의 내용 역시 이를 처리하는 구조로 수정한다. //function getList(param, callback, error) { // //var bno = param.bno; //var pa.. 2021. 10. 11. REST방식(8)-댓글페이징처리 정성스럽게 작성하다가 날라갔다.. 다시 작성하겠다. DB설계 와 인덱스 설계 인덱스를 생성하자 create index_reply on tbl_reply(bno desc, rno asc); 그리고 ReplyMapper.xml에 다음내용을 추가한다. 0 and rownum (#{cri.pageNum} -1) * #{cri.amount} ]]> 테스트할 구문이다. @Test public void testList2() { Criteria cri = new Criteria(1, 10); List replies = mapper.getListWithPaging(cri, 1L); replies.forEach(reply -> log.info(reply)); } 테스트를 진행하자 이상이없다면 댓글과 댓글 수 처리 할 DT.. 2021. 10. 11. REST방식(9)-이벤트처리 앞의 과정을 이상없이 진행했다. 이미 Ajax 처리까지는 완료되는 것을 확인했다. 남은 작업은 화면에서 버튼 등에서 발생하는 이벤트를 감지하고 Ajax호출의 결과를 화면에 반영하는 것이 남았다. 요구사항 1. 조회페이지가 열리면 댓글을 가져온다. 2. 댓글은 원글 아래쪽에 배치한다. 3. 댓글에 대한 처리는 모달창으로 처리한다. 댓글 목록 처리 댓글 목록을 위해서 별도의 태그를 생성한다. 게시글과 관련된 화면 아래쪽에 추가한다. Reply New Reply 안에는 나중에 댓글들을 위치시켜야하니 대략적인 위치를 잡는 식으로 작성한다. 그럼 위와같이 나타난다. 댓글의 목록은 태그 내에 태그를 이용해서 처리할 것이다. 각 태그는 하나의 댓글을 의미하므로 수정이나 삭제시 이를 클릭하게 되고 그 를 위한 정보들을.. 2021. 10. 8. REST방식(8)-Ajax JavaScript 준비 jsp내에서 댓글에 대한 처리는 하나으 ㅣ페이지 내에서 모든 작업이 이루어지기 때문에 조금 복잡하게 느껴질수 있다. (CRUD + 페이징) 앞으로 계속사용될 JS를 모듈화 Ajax를 이용하는 경우에는 jQuery의 함수를 이용해서 너무나 쉽게 처리할 수 있기 때문에 많이 사용함. 그런데 이곳저곳 많이쓰다보니 이벤트처리, DOM처리 등등 마구섞여 유지보수가 힘들 수 있음. 그래서 하나의 모듈처럼 구성하는 방식을 이용한다. webapp 내 resource 폴더 에 js폴더 내 reply.js 파일을 작성 지금은 아무기능없이 간단히 동작하는 코드만을 넣어 확인해보자 console.log("확인"); var relyService= {}; 그리고 기존에 만들었던 jsp 파일이있는데 거기와.. 2021. 10. 8. REST방식(7)-Ajax댓글처리 @Param어노테이션과 댓글 목록 댓글도 일반 게시판 조회할때 처럼 페이징기능이 있는것을 볼 수가 있다. 기존의 게시물 페이징 처리와 유사하지만, 추가적으로 특정한 게시물의 댓글들만을 대상으로 하기 때문에 추가로 게시물의 번호가 필요하게 된다. 즉, 게시글고유번호를 통해 댓글들을 쭈욱 불러오고 그걸 페이징한다는 개념! MyBatis는 두개 이상이 데이터를 파라미터로 전달하기 위해서 1. 별도의 객체로 구성 2. Map을 이용하는 방식 3. @Param을 이용해서 이름을 사용하는 방식이 있다. 여러 방식중 간단하게 사용할 수 있는 방식이 @Param을 이용하는 방식이다. 페이징 처리를 하기 위해서 Criteria를 이용한다. 여기에 추가적으로 해당 게시물의 번호는 파라미터를 전달하도록 ReplyMapper.. 2021. 10. 7. REST방식(6)-Ajax댓글처리 Ajax호출을 가정하고 웹페이지에서 사용하는 댓글 기능을 작성해 보겠다. DB 상에서 댓글은 전형적인 1:N 관계로 구성하고있다. 하나의 게시물에 여러 개의 댓글을 추가하는 형태로 구성하고, 화면은 조회 화면상에서 별도의 화면 이동 없이 처리해야 하기때문에 Ajax를 이용해서 호출하겠다. 댓글을 추가하기 위해서 댓글 주고에 맞는 테이블을 설계해야 한다. 댓글 테이블은 tbl_reply라는 이름으 ㅣ테이블로 지정해서 생성한다. 댓글 자체는 단독으로 CRUD가 가능하므로, 별도의 pk를 부여고 외래키FK설정을 통해 tbl_board 테이블을 참조하도록 해야한다. 댓글을 위한 RelyVO 클래스의 추가 tbl_reply 테이블을 참고해서 org.study.domain 패키지 아래 RelyVO 클래스를 추가한다.. 2021. 10. 7. REST방식(5) @RestController는 기존의 @Controller에서 사용하던 일반적인 타입이나 사용자가 정의한 타입을 사용한다. 여기에 추가로 몇가지 어노테이션을 이용하는 경우가 있다. -@PathVariable : 일반 컨트롤러에서도 사용이 가능하지만, Rest방식에서는 자주 사용됨 , URL 경로의 일부를 파라미터로 사용할 때가 있음 -@RequestBody : JSON데이터를 원하는 타입의 객체로 변환해야 하는 경우에 주로 사용 @PathVariable Rest방식에서는 Url내에 최대 많은 정보를 담으려고한다. 스프링 MVC에서는 @PathVariable 어노테이션을 이용해서 URL상에 경로의 일부를 파라미터로 사용할 수 있다. http://localhost:8080/sample/{sno} 라던가 ht.. 2021. 10. 7. REST방식(4) 컬렉션 타입의 객체 반환 produce 속성은 반드시 지정해야 하는 것은 아니여서 생략했더니 동일한 화면값을 얻었다. 경우에 따라서는 여러 데이터를 한 번에 전송하기 위해서 배열이나 리스트, 맵 타입의 객체들을 전송하는 경우도 발생한다. @GetMapping(value = "/getList") public List getList() { log.info("MIME TYPE : " + MediaType.TEXT_PLAIN_VALUE); return IntStream.range(1, 10).mapToObj(i -> new SampleVO(i, i + "First", i + "Last")) .collect(Collectors.toList()); } getList()는 내부적으로 1부터 10미만까지의 루프를 처리.. 2021. 10. 6. REST방식(3) 프로젝트생성과 의존성주입을 마쳤다. @RestController의 반환 타입에 대해 공부하도록하자 스프링의 @RestController는 특별히 기존 @Controller와 다른 점은 없다. 그러니 평소와 동일하게 또는 사진과 같이 패키지에 클래스를 만들어보자 패키지는 org.study.controller 이름으로 작성한다. 사진의 맨밑처럼 SampleController를 만들었다. 나는 기존의 프로젝트에 REST방식을 공부키위해 HomeController가 있는것이다. 크게상관은 없다. @RestController는 JSP와 달리 순수한 데이터를 반환하는 형태이므로 다양한 포맷의 데이터를 전송할 수 있다. 주로 많이 사용하는 형태는 일반 문자열이나 JSON, XML 등을 사용한다. SampleContr.. 2021. 10. 6. REST방식(2)-의존성주입 기존의 프로젝트가 있거나, 새로 Spring Legacy Project를 이용해서 프로젝트틀 생성한다. 나는 이미 프로젝트가 있으니 진행하겠다. pom.xml에 의존성을 주입한다. com.fasterxml.jackson.core jackson-databind 2.9.6 com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.9.6 4.0.0 org.study controller Study_spring war 1.0.0-BUILD-SNAPSHOT 1.8 5.0.7.RELEASE 1.6.10 1.6.6 org.springframework spring-context ${org.springframework-version} commons-logging commons.. 2021. 10. 6. 이전 1 2 다음 728x90 반응형 LIST