Vue 스터디를 하면서 최근에 Rest API
에 관한 얘기가 나왔는데,
REST에 대해 잘 모르고 있는 것 같아 이번 기회에 확실히 알고 넘어가고자 인터넷을 좀 뒤적거렸다.
그런 REST API로 괜찮은가? by 이응준님 (DEVIEW 2017) REST의 representation이란 무엇인가 by 이응준님 (blog) 인프런 REST API 강좌 by 백기선님 (인프런) REST API 제대로 알고 사용하기 by 김동범님 (TOAST Meetup) 그 외 다수…
Representation ?
Representation : resource에 대한 상태를 담은 정보
- Representation
- Representation Data
- Response Body
- Representation Metadata
- Content-Type
- Content-Language
- Representation Data
Representations - RFC 7231(HTTP 1.1), REST의 representation이란 무엇인가 by 이응준님 (blog) 를 보면 representation 에 대해 좀 더 자세히 알 수 있다.
Get
The GET method requests transfer of a current selected representation for the target resource. GET is the primary mechanism of information retrieval and the focus of almost all performance optimizations. Hence, when people speak of retrieving some identifiable information via HTTP, they are generally referring to making a GET request.
(GET method - RFC 7231(HTTP 1.1))
해당 URL의 리소스에 대한 현재 representation을 요청
REST ?
Representational State Transfer
REST는 웹을 위한 네트워크 기반 아키텍처 스타일(아키텍처가 지켜야하는 제약조건들의 집합) 이다. (소프트웨어 아키텍처 X, 프로토콜 X)
- 제약조건 (6가지)
- Client-Server
- Stateless
- Cache
- Uniform Interface
- Identifying a Representation
- manipulation of resources through representations
- self-description
- HATEOAS
- Layered System
- Code-On-Demand (optional)
RESTful은 서비스 중심(SOA)이 아닌 리소스 중심의 표현, 전달, 접근 방식의 특성을 가지는 리소스 기반 아키텍쳐(ROA)이다.
자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현
이건 REST 명세인가 HTTP 명세인가 ?
HTTP명세이기도 하고, 이걸 따라야 한다는 것이 REST 인 것 같음.
API ?
Application Programming Interface
데이터를 요청하고 응답을 위한 인터페이스
REST API ?
Rest 아키텍처 스타일을 따르는 API
Restfu Maturity Model (RMM)
Restful 성숙도 모델
Leonard Richardson
이 QCon 토크에서 설명한 모델. 마틴파울러가 자신의 블로그에 RMM에 관한 글을 적으면서 더 유명해짐.
Richardson Maturity Model - steps toward the glory of REST :: 마틴파울러 블로그 (원문)
Richardson Maturity Model - steps toward the glory of REST :: 마틴파울러 블로그 (한글 번역)
위 레벨들은 REST의 레벨이 아님. Roy Thomas Fielding
은 RMM level3이 되야지 REST라고 부를 수 있다고 함.
Comments powered by Disqus.