Bactoria 황준오

Rest API 란?

2019-05-28
bactoria

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

 

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)

관련 논문 : Architectural Styles and the Design of Network-based Software Architectures - Roy Thomas Fielding, 2000

 

  • 제약조건 (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 성숙도 모델 image

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라고 부를 수 있다고 함.


황준오 (Bactoria) 황준오 (Bactoria)

.

Comments

Content