REST API

굿거리·2023년 6월 1일
0

REST(REpresentaional State Transfer)

REST란 Representational State Transfer의 약자로, 어떠한 표현에 의한 리소스의 현재 상태를 전송하는 것으로, 웹의 아키텍처 스타일이다.

REST의 구성은 다음과 같다.

🧡 자원(Resource)

리소스란 클라이언트와 서버가 주고 받고자 하는 모든 정보. 이는 텍스트, 이미지, 영상, 데이터 등 모든 것이 포함된다.

uri : 통합 자원 식별자(Uniform Resource Identifier)로, 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스

💛 행위(Verb)

  • REST에서의 행위는 HTTP Method를 말함.

  • HTTP Protocol은 GET, POST, PUT, PATCH, DELETE의 Method를 제공한다.

💚 표현(Representation)

  • 클라이언트와 서버가 리소스를 주고 받을 때, 실제로는 주고 받는 것이 리소스는 아니다. 정확히는 해당 리소스가 특정한 방식으로 표현된 것을 말한다.

  • 클라이언트와 서버가 데이터를 주고받는 형태로 JSON, XML 등이 있다.

종합해보면, REST는 HTTP 규약을 준수하며 클라이언트와 서버 간에 행위(Verb)를 통해 특정한 표현(Representation)으로 나타난 자원(Resource)을 주고받는 것이다.


REST의 특징

🧡 Stateless (무상태성)

REST는 무상태성 성격을 지닌다. 이는 클라이언트의 세션 정보나 쿠키 정보를 신경쓰지 않고 서버는 단순히 들어오는 요청만을 처리할 수 있게 된다. 따라서 서버에서는 API의 구현이 단순해지고 자유도가 높아지게 된다.

💛 Cacheable (캐싱 가능)

  • REST는 웹 표준 HTTP를 그대로 사용하기에 HTTP가 가진 캐싱 기능을 적용할 수 있다.

  • HTTP 표준에서 사용하는 Last-Modified 태그나 E 태그를 이용하여 구현 가능하다.

💚 Self-Descriptiveness (자체 표현 구조)

REST를 적용한 API는 Verb만을 보고 해당 API가 어떤 기능을 하는지 직관적으로 명확하게 알 수 있다.

💙 Client - Server 구조

서버는 REST API를 제공하고, 클라이언트는 세션과 쿠키를 관리하는 구조로 명확히 두 측의 역할이 구분되어 의존성이 줄어든다.


REST API?

✔ API란?

  • Application Programming Interface의 약자

  • 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 매커니즘

  • 가게에서의 소통 창구 혹은 직원의 역할을 한다.

🔶 REST API

REST API란 말 그대로 REST 형식을 잘 지킨 API라고 할 수 있다. 이러한 형식을 'RESTful하다' 라고 한다.

URI 설계 시 주의점

💖 1. URI는 정보의 자원을 표현해야 한다. 리소스에 집중한다.
💘 2. 자원에 대한 행위는 HTTP Method(Get, Post, Put, Delete)로 나타낸다.

  • URI 설계 시 주의할 점

    • 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용하며, 마지막에 붙이지 않는다.

    • 단어의 연결에 언더바( _ ) 대신 하이픈( - )을 사용한다.

    • 대문자 대신 소문자를 사용한다.

    • 파일 확장자는 URI에 포함시키지 않는다.

    • 행위를 포함하지 않는 대신 Http Method(Get, Post, Put, Delete)로 표현한다.

profile
개발자를 향해

0개의 댓글