ANACODER
98
2018-08-30 13:38:42
5
1126

Rest API 이해가 안돼요 ㅠㅠ


일반적인 스프링 프레임워크의 웹개발은 교육을 통해서 해봤는데요

스프링 부트로 Rest API 서버를 만들고 싶은데 

어제부터 자료를 찾아봐도 도통 이해가 가질 않네요


RestController의 예제를 통해서 해당 uri요청시

리턴값을 통해 웹브라우저에 텍스트나 json형태로 보여주는 것을 이해했습니다.


예를 들어서 어떤 customer가 홈페이지의 게시판을 조회하려고 합니다.

게시판 버튼을 눌렀을 때, 어떤 로직이 돌아가야 하나요?


뷰를 담당하는 Controller와 데이터 처리를 하는 RestController로 나눠서 해야 하나요?

(이게 맞는지 모르겠습니다.. 제가 이해한 바는 다음과 같습니다)

게시판을 보여주는 uri를 Controller에서 처리를 하는데, 

글(글번호, 작성자, 제목 등등)의 list를 가져오는것은 RestController에서 처리를 하나요?

즉, Controller에서 다루는 게시판 uri 메소드 내에서

RestController에서 다루는 게시판 리스트 uri를 호출해서 그 결과값을 json형태나 텍스트형태로 받아와서 jsp에 뿌려주는건가요?


어제부터 붙잡고 있는데 혼자 해결할 수 없을것 같아 질문글 올립니다..ㅠㅠ 





0
  • 답변 5

  • ejl
    195
    2018-08-30 14:59:08

    보통 뷰에서 ajax 또는 프론트엔드 프레임워크에서 사용 가능한 모듈을 통해 uri를 호출하여 정보를 받아옵니다.

      html 에서 ajax 를 사용하여 uri를 호출하고 게시판 글 목록을 받았다하면

    <body>

     ... 

    <tbody id='tbody' >

    </tbody>

    </body>


    <script>

      ... ,

    success : function(data){

    // 예) data 값이 [ {no:'1',title:'1번제목'},{no:'2',title:'2번제목'}  ] 일경우

      var inner = '';

          for(var i = 0 ; i < data.length ; i ++){

              inner += ' <td>'+data[i].no+'</td>;

              inner += ' <td>'+data[i].title+'</td>;

    }

    document.getElementById('tbody').innerHTML = inner;

    }

    </script>


    이런 형식으로 자바스크립트를 사용하여 목록에 표시 해주실수 있습니다.

     위의 코드가 직접 해보고 쓴 코드가 아니라 참고용으로만 보시면 될것같습니다. 


  • ANACODER
    98
    2018-08-30 15:34:23

    답변글 잘 읽었습니다 몇가지 질문이 있는데요


    1. Ajax가 Restful API의 한 방법이라고 이해해도 될까요? 

    Ajax는 알고있었는데

    Restful API에서 CRUD에 해당하는 GET, PUT, PUT, DELETE메소드를 사용해야 하는걸로 아는데

    그럼 Ajax의 요청Type를  위 메소드중에서 선택해서 사용하는건가요?


    2. 뷰를 위한 Controller는 RestController와 따로 구성해야하나요?

    예를들어서, 사용자가 자유게시판이라는 버튼을 클릭했을 때 /freeboard라는 uri요청을 하면

    Controller의 RequestMapping을 통해  /freeboard에 해당하는 jsp를 리턴하는데

    데이터 관련은 Restful API로 구현해야 하니까

    해당 jsp내에서 바로 Ajax요청(작성해주신 코드처럼)을 해야 하는건가요?


    데이터를 가져오는건 이해가 잘 되는데, Restful API 이 단어에 혼란이 와서 그런지 

    뷰랑 어떻게 혼합해서 사용해야하는지 감이 잘 안오네요 ㅠㅠ


  • ejl
    195
    2018-08-30 15:59:21

    1. 네, 위 메소드중 선택하시면 됩니다.

    2.  네, 저의경우 버튼 클릭시 뷰가 호출되고, 뷰 내에서 ajax 등을 통해 데이터를 받아와 화면에 뿌려주는 식으로 했었습니다.

    저는 Rest Api 서버와 뷰 는 서로 다른 프로젝트 라고 생각하며 개발했었어요.

       실제로 개별 서버를 두고 개발을 한 적도 있고요.

     다만 프론트서버와 백서버가 서로 도메인,포트가 다른경우 정상적으로 ajax요청이 되지 않을수 있으니 그에 대한 대비가 필요할거에요

  • ANACODER
    98
    2018-08-30 16:14:38

    답변해주셔서 감사합니다

    검색을 해보니까 Restful API가 딱 명확하게 이거다! 라는게 없어서 되게 어렵게 느껴지는것 같네요

    좋은하루되세요


  • 슬하
    1k
    2019-05-07 16:06:43

    혹시 이거해결하셨나요..?ㅠㅠ도대체 저도 이해가 안되네요..

    이게 마지막에 jsp에 데이터들을 넘겨주는게 아닌거죠..?

    그러면 jsp파일들이 필요가없고 어디에다가 데이터들을 넘겨줘야하는건가요...?

  • 로그인을 하시면 답변 을 등록할 수 있습니다.