Spring(day-5) Rest 사용

김성국·2023년 5월 8일
0

REST란?

  • 각 플랫폼에 맞게 서버를 일일이 만드는 것이 굉장히 비효울적임을 느낀 이들이 HTTP 메소드들(GET,POST,PUT,DELETE)을 활용하여 어떤 플랫폼을 사용하든지 간에 클라이언트와 서버 간에 동일하게 데이터를 주고 받을 수 있는 아키텍처를 만들어 낸 것이다.
  • REST는 하나의 URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념입니다. 디바이스의 종류에 상관없이 공통으로 데이터를 처리할 수 있도록 하는 방식을 REST라고 합니다.
    -REST API는 사용자가 어떠한 요청을 했을 때 HTML을 리턴하지 않고, 자바스크립트를 이용해서 사용자가 필요로 하는 결과(데이터)만을 리턴해주는 방식이다.

01.Rest를 이용해 게시판에 글쓰기

■ restcontroller.java

● @RequestMapping란?

  • 특정 uri로 요청을 보내면 Controller에서 어떠한 방식으로 처리할지 정의를 한다. 이때 들어온 요청을 특정 메서드와 매핑하기 위해 사용하는 것이 @RequesMapping이다.
  • @RequesMapping에서 가장 많이사용하는 부분이 value와 method이다.
    -value는 요청받을 url을 설정하게 된다. method는 요청으로 받을지 정의하게 된다.(GET,POST,PUT,DELETE 등)

● @RequiredArgsConstructor란?

  • @RequiredArgsConstructor는 final혹은 @NotNull이 붙은 필드의 생성자를 자동으로 만들어준다. 이를 통해 새로운 필드를 추가할 때 다시 생성자를 만들거나 하는 등의 번거로움을 없앨 수 있다. 하지만 자동적으로 생성자가 만들어지기 때문에 내가 예상하지 못한 결과나 오류가 발생할 수 있기 때문에 그런 점도 염두해둬야 한다.

● @RestController이란?

  • @Controller + @ResponseBody가 합쳐진 형태로 JSON 형태의 객테 데이터를 반환한다. Rest Api를 통해 JSON으로 데이터만 전달하기 때문에 편리성을 위해 사용한다
  • RestController를 붙이면, 컨트롤러 클래스 하위 메서드에 @ResponseBody 어노테이션을 붙이지 않아도 문자열과 JSON 등을 전송할 수 있습니다.

● @Slf4j란?

  • 좀 더 편하게 로그를 찍기 위해서
  • 여기 REST에서 Map을 쓰는 이유는 JSON형식을 받기 위해서 Map을 사용한다.

  • @RequestMapping(value="/insert.json", method={RequestMethod.POST})
    메소드를 Post로 지정하고 uri를 insert.json으로 지정한다.
    
  • Mapper를 이용해서 Map에 값을 넣는다.(POSTMEN을 이용해서 확인한다)

■ BoardMapper

■ PostMen

  • JOSN으로 형식으로 받기때무에 JSON으로 설정해줘야한다. 이렇게 "result":1의 결과가 나오면 board테이블에 위와 같은 값이 들어간다.

■ Board.DB

  • 이렇게 BoardDB에 PostMen에서 입력한 값이 들어가 있다.

02.게시글 번호가 전달하면 조회수 증가

■ restcontroller.java

  • put은 전체를 수정할때 사용한다.
  • 게시글 번호가 전달되면 update를 이용해서 게시글 증가 시키고 결과를 result:1, result:0으로 보여준다.

■ BoardMapper

  • 게시글 번호가 전달되면 지금 조회수에서 1을 더한다.

■ PostMen

  • "result":1이 나왔으므로 103번 게시글 조회수가 증가했을거다.

■ Board.DB

  • 위에서 말한 바와 같이 조회 수가 1증가 했습니다.

0개의 댓글