[CS] RESTful API 의미와 설계 규칙

김훈·2022년 1월 21일
0

[Network]

목록 보기
2/5

1. REST(Representational State Transfer) 란?

REST(Representational State Transfer)의 약자로
자원이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다.

  1. HTTP URI(Uniform Resource Identifier - 이름)으로 자원을 명시하고 구분하여
  2. HTTP Method(POST, GET, PUT, DELETE)를 통해
  3. 해당 URI에 대한 CRUD Operation을 적용하는 것을 의미합니다.

URI로 리소스를 명시하여 HTTP Method 로 리소스를 주고 받아 CRUD Operation를 적용하는 것

  • HTTP Method
    POST : 지정된 URL에 신규 리소스를 생성
    GET : 지정된 URL에서 리소스의 표현을 조회
    PUT : 지정된 URL에 리소스를 생성하거나 업데이트
    DELETE : 지정된 URL의 리소스를 제거
    PATCH : 리소스의 부분 업데이트

  • CRUD Operation이란
    Create : 데이터 생성(POST)
    Read : 데이터 조회(GET)
    Update : 데이터 수정(PUT)
    Delete : 데이터 삭제(DELETE)

GET과 POST차이..


2. REST의 구성 요소

REST는 다음과 같은 3가지로 구성이 되어있다.

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


3. REST의 특징

  1. Uniform Interface(인터페이스 일관성)
    : 일관적인 인터페이스로 분리되어야 합니다.

  2. Stateless(무상태)
    : 각 요청 간 클라이언트의 context, 세션과 같은 상태 정보를 서버에 저장하지 않습니다

  3. Layered System(계층화)
    : 클라이언트는 대상 서버에 직접 연결되어있는지, Proxy를 통해서 연결되었는지 알 수 없습니다.

  4. Cacheable(캐시 처리 가능)
    : 클라이언트는 응답을 캐싱할 수 있어야 합니다. 캐시를 통해 대량의 요청을 효율적으로 처리할 수 있습니다.

  5. Server-Client(서버-클라이언트 구조)
    : 아키텍처를 단순화시키고 작은 단위로 분리함으로써 클라이언트-서버의 각 파트가 독립적으로 구분하고 서로 간의 의존성을 줄입니다.


4. REST API란? 그리고 규칙은?

RESPT API란 REST의 원리를 따르는 API를 의미합니다.
REST API를 올바르게 설계하기 위해서는 지켜야 하는 몇가지 규칙이 있으며 해당 규칙을 알아 보겠습니다.

  1. 소문자 써

Bad Example http://khj93.com/Delete_Running.jpg/
Good Example http://khj93.com/Delete_running.jpg/

  1. 마지막에 슬래시 쓰지마

Bad Example http://khj93.com/Delete_running.jpg/
Good Example http://khj93.com/Delete_running.jpg

  1. 언더바 쓰지말고 하이픈, 근데 되도록 둘다 쓰지마

Bad Example http://khj93.com/Delete_running.jpg
Good Example http://khj93.com/Delete-running.jpg

  1. 확장자 포함하지마

Bad Example http://khj93.com/Delete-running.jpg
Good Example http://khj93.com/Delete-running

  1. 행위 쓰지마, 행위는 메소드로만

Bad Example http://khj93.com/Delete-running
Good Example http://khj93.com/running

profile
작고 소중한 개발 노트

0개의 댓글