REST(Representational State Transfer)란?(feat, RESTful, REST API)
#146
1. REST(Representational State Transfer)란?
분산 하이퍼미디어(자원) 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원의 상태나 정보를 전송하는 인터페이스입니다.
REST를 구성하는 요소에는 총 세가지가 있습니다.
아래의 예시를 보시면 쉽게 이해하실 수 있습니다.
예) 1번 영화 자원에 대하여 조회 요청
POST /movies/1
{
"name" : "The LThe Lord Of The Ringsord Of The Rings"
}
우선 첫 번째로 자원(Resource)이 있어야 합니다.
보통 URI이라고 하는데요.
보시면 아시겠지만 자원은 1번 영화입니다.
두 번째로는 행위(Method)입니다.
자원에 대한 HTTP 요청입니다.
이 요청에는 POST, GET, PUT, DELETE가 있는데요.
각각 CREATE, READ, UPDATE, DELETE에 해당됩니다.
예시에서는 POST를 이용했으니 CREATE에 대한 요청이겠죠?
세 번째로는 표현(Representation)입니다.
어떤 자원을 요청하는지에 대한 메세지라고 보시면 되는데요.
위의 예시에서는 1번 영화에 대한 내용으로 보시면 됩니다.
이 내용을 어떻게 전달할 것인지 결정할 수 있습니다.(xml, json 등)
2. REST의 조건
REST를 구현하는데 크게 6가지 조건이 있습니다.
1) Client-server architecture
: REST가 구현된 서버, 이에 요청을 하는 클라이언트, 독립적인 구조로 운영
2) Statelessness
: 클라이언트가 요청한 내용에 대한 상태정보를 저장하지 않고 요청에 대한 응답만 전달
3) Cacheability
: HTTP 캐싱이란 웹 상에서 자주 액세스하는 데이터를 임시 저장하는 방법, 클라이언트의 요청에 대해 캐싱
4) Layered sytem
: 계층을 두어 각 계층에서 역할을 수행할 수 있도록 분리(암호화, 로드밸런싱 등)
5) Code on demand(Option)
: 클라이언트 요청에 따라 서버에 실행 가능한 소프트웨어 코드를 전송
6) Uniform interface
: 자원에 대한 행위(메소드)를 통일된 인터페이스로 제공
3. REST 작성 가이드
1) 소문자를 사용한다.
2) '/'는 계층 관계를 나타낼 때 사용하고 마지막에는 사용하지 않는다.
3) 언더바(_)를 사용하지 않고 하이픈(-)을 사용한다.
4) 되도록 동사를 사용하지 않고 명사를 사용하며, 복수형으로 사용한다.
5) 확장자를 표시하지 않는다.
6) 행위에 대하여 표현하지 않고 메소드를 통해 사용한다.
4. RESTful이란?
한국적으로는 REST와 같은 의미입니다.
REST한~ 이런 의미라고 보시면 됩니다.
5. REST API란?
API란 이전 포스팅에서 이야기를 드렸죠?
API(Application Programming Interface)란?
#145 1. API(Application Programming Interface)란? 응용 프로그램 프로그래밍 인터페이스, 즉 응용 프로그램 간에 인터페이스를 해주는 역할을 담당하는 것입니다. 처음에 이 개념만 들었을 때 정말 모호
goldsony.tistory.com
REST환경에서 제공하는 API입니다.
사실 REST에서 제공하는 것이 REST API입니다.
6. REST API 예제
Open API에서 GET 메소드를 이용하여 프로그램을 만들 때 참고하였던 내용입니다.
영화진흥위원회 오픈API
튜토리얼 영화관입장권통합전산망 오픈API 서비스를 이용해 간단한 애플리케이션을 개발하는 튜토리얼입니다.
www.kobis.or.kr