ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 13. Spring RESTful API
    개발자 수업/Spring 2022. 1. 12. 17:15

    1. Open API (Application Programming Interface)
        1) 개방형 API
        2) API : 응용 프로그램 개발할 때 사용하는 인터페이스
        3) 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스임
        4) 대부분 Open API는 REST 방식으로 지원됨

    2. REST (Representational Safe Transfer)
        1) HTTP URI + HTTP Method
        2) HTTP URI를 통해 제어할 자원(Resource)을 명시하고, HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍처임
            HTTP Method                     CRUD
            -----------------------------------------------
            POST                            Create(Insert)
            GET                             Read(Select)
            PUT                             Update or Create
            DELETE                          Delete

    3. RESTful API
        1) HTTP와 URI 기반으로 자원에 접근할 수 있도록 제공하는 애플리케이션 개발 인터페이스
        2) 비교
                            기존 웹 접근 방식                       RESTful API 지원 방식
            ------------------------------------------------------------------------------------
            글 읽기         GET /list.do?no=500&name=java           GET /bbs/java/500       조회(Select)
            글 등록         POST /insert.do                         POST /bbs/java/500      추가(Create)
            글 삭제         GET /delete.do?no=500&name=java         DELETE /bbs/java/500    삭제(Delete)
            글 수정         POST /update.do?                        PUT /bbs/java/500       수정(Update)
        3) REST 방식으로 요청하는 URI 형식
            메서드                  URI                 설명
            -----------------------------------------------------------------------------------
            POST                /boards + 데이터        새 글 등록하기
            GET                 /boards/311             311번 글 조회하기
            PUT                 /boards/311 + 데이터    311번 글 수정하기
            DELETE              /boards/311             311번 글 삭제하기

    4. JSON / XML
        1) JSON
            - 경량의 DATA 교환 방식
            - JavaScript에서 객체를 만들 때 사용하는 표현식을 의미함
            - 현재는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용함

    5. @RestController
        1) 스프링4에서 @RestController 어노테이션 이용해 REST 방식의 데이터 처리 지원함
        2) 문자열 전달하기
        3) VO 객체 전달하기
        4) 컬렉션 객체 전달하기
        5) Map 전달하기 (map 데이터를 JSON으로 전송함)

    6. @PathVariable
        1) 브라우저에서 요청 URL로 전달된 매개변수를 가져올 수 있음

    7. RESTful Controller를 위한 어노테이션
        1) Spring MVC에서는 클라이언트에서 전송한 XML이나 JSON 데이터를 Controller에서 Java 객체로 변환해서 받을 수 있는 기능(수신) 제공함 
        2) @RequestBody
            - HTTP Request Body(요청 몸체)를 Java 객체로 전달받을 수 있음
            - 브라우저에서 전달되는 JSON 데이터를 객체로 자동 변환해줌
            - JSON 데이터를 VO 객체로 자동 변환함
        3) @ResponseBody
            - Java 객체를 HTTP Response Body(응답 몸체)로 전송할 수 있음
            - 컨트롤러의 특정 메서드에 적용하면 --> JSP가 아닌 텍스트나 JSON으로 결과를 전송할 수 있음
        4) ResponseEntity 클래스 사용해서 응답하기
            - @RestController는 별도의 View를 제공하지 않은 채 데이터를 전달함
                -> 전달과정상 예외 발생가능성이 있음
            - 예외에 대해 제어가 필요한 경우 ResponseEntity 클래스를 사용함
        5) HttpHeaders 클래스 이용
            - ResponseEntity로 전송할 데이터의 종류와 한글 인코딩을 설정할 수 있음

    '개발자 수업 > Spring' 카테고리의 다른 글

    14. 스프링 게시판  (0) 2022.01.15
    12. 스프링 지원 기능들  (0) 2022.01.12
    11. 타일즈(tiles)  (0) 2022.01.12
    10. 메이븐과 스프링  (0) 2022.01.07
    9. 스프링 어노테이션  (0) 2022.01.04

    댓글