본문 바로가기

IT개발정보

(REST) REST API 공부

1. REST API란?

 REST(RESTful, Representational State Transfer)  약자

 HTTP URI 를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT DELETE) 를 통해 해당 자원에
 대한 CRUD Operation을 적용하는 것을 의미

 

자원의 이름으로 구분하여 해당 자원의 상태를 교환,  REST는 서버와 클라이언트의 통신 방식 중 하나

 

2. REST 필요성

  • 애플리케이션의 분리 및 통합
    • 애플리케이션의 복잡도가 증가 -> 애플리케이션을 어떻게 분리하고 통합하느냐가 주요 이슈
    • 이에 자바에선 최근에는 MSA(Micro Service Architecture)와 함께 REST가 떠오르고 있는 것
  • 다양한 클라이언트의 등장
    • 모바일과 같은 다양한 클라이언트의 등장하면서 Backend 하나로 다양한 Device를 대응하기 위해 REST의 필요성이 증대되었다. 최근의 서버 프로그램은 다양한 브라우저와 안드로이폰, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야 한다. 이러한 멀티 플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용하는 방법을 모색한 결과, REST에 관심을 가지게 되었다.

3. REST 장단점

  • 장점
    • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다
    • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있다
    • HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용이 가능하다
    • Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다
    • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다
    • 여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다
    • 서버와 클라이언트의 역할을 명확하게 분리한다
  • 단점
    • 표준이 존재하지 않는다
    • 사용할 수 있는 메소드가 4가지 밖에 없다(GET, POST, PUT, DELETE)
    • 구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 존재한다

 

3. HTTP Method

  • Create : 생성(POST)
  • Read : 조회(GET)
  • Update : 수정(PUT)
  • Delete : 삭제(DELETE)
  • HEAD: header 정보 조회(HEAD)

 

4. REST API 구성요소

  • 자원(Resource): URL/URI
  • 행위(Verb): HTTP Method
  • 표현(Representations)
  •  

5. REST API 설계 규칙

  • resource(자원)는 가급적 명사를 사용하고, 소문자를 사용한다.
  • URI에 HTTP Method를 포함하지 않는다.
  • URI는 '/'로 끝나지 않는다.
  • _(underbar) 대신 -(dash)를 사용한다.
  • 파일 확장자는 URI에 포함하지 않는다.

6. REST API 적용예시

REST 적용이전 REST 적용 후
/crateBoard POST/board
/getBoard GET /board
/updateBoard/in PUT /board/in
/deleteBoard/in DELETE /board/in

파라미터 예시 

GET /board?seqno=21

GET /board?seqno=21&category=free

HTTP POST , http://localhost:8080/board

{

   "board":{

      "title":"제목",

      "content":"내용"

   }

}

7. REST API 설계 시 중요항목

첫 번째, URI는 정보의 자원을 표현해야 한다.
두 번째, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.

 

 

8. RESTful API

상기의 REST 제약조건을 준수하여 설계된 API를 RESTful API 라고 한다.

'IT개발정보' 카테고리의 다른 글

유튜브 개발 강좌 추천  (0) 2023.04.05
java version - major version number  (0) 2023.04.05
(Docker) 컨테이너 안에 vi 편집기 설치  (0) 2023.04.03
ubuntu mysql 설치 및 관리  (0) 2023.04.03
Docker 명령어  (0) 2023.04.02