[CS] RESTful, REST API

박연주·2023년 5월 1일
0

Computer Science

목록 보기
9/13

🚀 REST(Representational State Transfer)

  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미
    - HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고
    - Http Method를 통해
    - 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것

CRUD Operation이란
CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말로
REST에서의 CRUD Operation 동작 예시는 Create, Read, Update, Delete가 있다.


구성요소

  • 자원(Resource) : HTTP URI
  • 자원에 대한 행위(Verb) : HTTP Method
  • 자원에 대한 행위의 내용(Representations) : HTTP Message Pay Load

특징

  • Server-Client(서버-클라이언트 구조)
  • Stateless(무상태)
  • Cacheable(캐시 처리 가능)
  • Layered System(계층화)
  • Uniform Interface(인터페이스 일관성)

장점

  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
  • 서버와 클라이언트의 역할을 명확하게 분리한다.

단점

  • 표준 자체가 존재하지 않아 정의가 필요하다.
  • HTTP Method 형태가 제한적이다.


🚀 REST API

  • REST의 원리를 따르는 API
  • 웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고,
    HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식 사용
  • REST API를 올바르게 설계하기 위해서는 규칙을 지켜야 함 (잘 알아볼 수 있도록)

설계 예시

  • URI는 명사, 소문자를 사용하여야 함 (동사, 대문자보다)
  • 마지막에 슬래시를 포함하지 않음
  • 언더바 대신 하이픈 사용
  • URI에 파일 확장자는 포함하지 않음
  • 행위를 포함하지 않음
http://velog.io/delete-post.jpg/ (x)

http://velog.io/test-post (o)


🚀 RESTful이란?

  • REST의 원리를 따르는 시스템, REST API의 설계 규칙을 올바르게 지킨 시스템
  • REST 아키텍처의 원칙을 모두 만족하는것을 의미
  • REST API를 제공하는 웹서비스라면 RESTful하다라고 설명 가능
  • URL을 통해 자원을 식별할 수 있어야 하고 Server가 제공하는 정보는 JSON이나 XML형식으로 HTTP body에 포함하여 전송시킴
  • 행위는 명시적이어야 하고 GET, UPDATE, DELETE, 등의 행위를 분명히 할수록 RESTful 함

목적

  • 이해하기 쉽고 사용하기 쉬운 REST API를 만들기 위해





Reference

REST 개념 - https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

REST 성숙도 -
https://velog.io/@oka1313/HTTP%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API

profile
하루에 한 개념씩

0개의 댓글