[B -2-35] Ajax 댓글 처리 8

2019. 10. 6. 22:07Project B (SPMS)/Project B 파트5

반응형

댓글 컨트롤러 설계 

 

작업 URL HTTP 전송방식
등록 /replies/new POST
조회 /replies/:rno GET
삭제 /replies/:rno DELETE
수정 /replies/:rno PUT or PATCH
페이지 /replies/pages/:bno/:page GET

 

REST 방식으로 동작하는 URL 을 설계 시에는 PK 기준으로 작성하는 것이 좋다.

단, 댓글의 목록은 PK를 사용할 수 없기때문에 파라미터로 필요한 게시물의 번호페이지 번호 정보들을 URL 에서 표현하는 방식을 사용한다.

 

 


댓글 등록 작업

 

src/main/java

com.spms.controller

ReplyController.java

create()

 

...더보기
package com.spms.controller;

import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.spms.domain.ReplyVO;
import com.spms.service.ReplyService;

import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j;

@RequestMapping("/replies/")
@RestController
@Log4j
@AllArgsConstructor
public class ReplyController {
	private ReplyService replyService;

	@PostMapping(value = "/new", consumes = "application/json", produces = { MediaType.TEXT_PLAIN_VALUE })
	public ResponseEntity<String> create(@RequestBody ReplyVO reply) {

		log.info("ReplyVO: " + reply);

		int insertCount = replyService.register(reply);

		log.info("Reply INSERT COUNT: " + insertCount);

		return insertCount == 1 ? new ResponseEntity<>("success", HttpStatus.OK)
				: new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
	}
}

 

REST 방식으로 처리 시 주의해야할 점

브라우저외부에서 서버를 호출 시 데이터의 포멧서버에서 보내주는 데이터 타입명확하게 설계해야 한다.

예를 들어 댓글 등록의 경우 브라우저에서는 JSON 타입으로 된 댓글 데이터를 전송하고, 서버에서는 댓글의 처리결과가 정상적으로 되었는지 문자열로 결과를 알려주도록 한다.

 

create()@PostMapping으로 POST 방식으로만 동작하도록 설계하고, 

comsumes produces를 이용해서 JSON 방식의 데이터만 처리하도록 하고, 

문자열을 반환하도록 설계한다.

 

create() 의 파라미터는 @RequestBody를 적용해서 JSON 데이터ReplyVO 타입으로 변환하도록 지정한다.

 


댓글 등록 작업 테스트 : Restlet client 실행

 

 

테스트 시에는 POST 방식으로 전송

Content-Typeapplication/json 으로 지정

데이터는 존재하는 게시물 번호(bno)댓글 내용(reply), 댓글 작성자(replyer)JSON 문법에 맞게 작성

 

작성된 댓글은 데이터베이스에 정상적으로 추가됐는지 확인한다.

댓글 결과 테스트 리턴값 200 이 나오면 정상적으로 처리됐다는 의미이다.

 

반응형

'Project B (SPMS) > Project B 파트5' 카테고리의 다른 글

[B -2-37] Ajax 댓글 처리 10  (0) 2019.10.08
[B -2-36] Ajax 댓글 처리 9  (0) 2019.10.08
[B -2-34] Ajax 댓글 처리 7  (0) 2019.10.06
[B -2-33] Ajax 댓글 처리 6  (0) 2019.10.06
[B -2-32] Ajax 댓글 처리 5  (0) 2019.10.06