Spring/Spring 코드 이해

[spring] CommentController의 post메서드 (댓글 작성)

congs 2023. 6. 12. 10:22

 

 

1. @PostMapping (value="/post", consumes="application/json", produces= {MediaType.TEXT_PLAIN_VALUE})

 

1 ) value = "/post"

  • 엔드포인트의 URL경로를 지정하는 부분 ( mapping의 값 )
  • post로 요청이 들어오면 이 메서드가 처리할 예정  = 단일 경로 사용

클라이언트의 요청과 일치하는 경로에 대해 해당 메서드가 처리됨

 

2 ) consumes="application/json" 

  • 클라이언트가 보내는 요청을 Content-Type 헤더를 기준으로 수락할 것인지 결정하는 부분 ( 받는 값 )
  • "application/json" 타입의 요청만을 수락 =  단일 미디어 타입
  • 클라이언트가 json형식의 데이터를 담아 전송하는 경우에만 처리할 예정

미디어 타입이나 패턴에 따라 다양한 값을 작성 가능

 

3 ) produces = {MediaType.TEXT_PLAIN_VALUE}

  • 서버가 응답으로 전송하는 데이터의 형식을 지정하는 부분 ( 내보내는 객체의 형식 )
  •  {MediaType.TEXT_PLAIN_VALUE} 는 "text/plain" 타입의 응답을 전송
  • 클라이언트에게 일반 텍스트 형식의 응답을 전송할 예정 = HTML형식 데이터 전송

 


 

2. private ResponseEntity<String> post(@RequestBody CommentVO cvo){ }

 

1 ) ResponseEntity<T> 

  • HTTP 응답을 나타냅니다. T타입의 데이터를 응답으로 반환
  • 리턴시 response의 통신상태를 같이 리턴해야함! 예) new ResponseEntity<String>("1" , HttpStatus.OK)

 

2 ) @RequestBody CommentVO cvo 

  • js파일의 body : JSON.stringify(cmtData)을 가져오기 위해 사용
  • @RequestBody를 사용해야 js의 값을 가져오기가 가능함

boardComment.js

  • 가져온 cvo를 log.info로 찍어보면 아래처럼 출력이 되고, RequestBody가 없는 경우 모두 null로 가져옴

 

3 ) return isOk > 0? new ResponseEntity<String>("1",HttpStatus.OK)
: new ResponseEntity<String>("0",HttpStatus.INTERNAL_SERVER_ERROR);

  • 0보다 크다면 1과 함께 http의 생태가 ok! 괜찮다는 의미를 리턴
  • 0보다 작다면 0과 함께 http의 상태가 error! 오류가 났다는 의미를 같이 리턴