Backend/JavaScript,NodeJS, Express

Rest API, CRUD 개념 정리

jellylucy 2021. 8. 2. 18:34

1. REST API의 탄생

Representational State Transfer API

-API : Application Programming Interface

응용프로그램에서 데이터를 주고 받기 위한 방법

(식당의 점원역할.

어떤 특정 사이트에서 특정 데이터를 공유할 경우 어떠한 방식으로 정보를 요청해야 하는지 어떤 데이터를 제공 받을 수 있는지에 대한 규격)


HTTP 주요 저자 중 한 사람인 로이 필딩이 웹(HTTP)설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 

웹의 장점을 최대한 활용할 수 있는 아키텍처로 발표.

 

2. REST 구성

(1) 자원 (resource) - URL

(2) 행위 (verb) - HTTP Method

(3) 표현 (representation)

 

3. REST 의 특징 

1) Uniform (유니폼 인터페이스)

URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 스타일

2) Stateless (무상태성)

작업을 위해 상태정보를 저장하고 관리하지 않습니다. 세션 정보나 쿠키정보를 별도로 저장하고 관리하지 않는다는 뜻.

단순히 들어오는 요청만 처리하면 된다. 이로인해 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않는다.

3) Cacheable (캐시 가능)

HTTP라는 기존 웹표준을 그대로 사용하기 때문에,

웹에서 사용하는 기존 인프라를 그대로 활용이 가능합니다. 따라서 HTTP가 가진 캐싱기능이 적용 가능합니다.

HTTP 프로토콜 표준에서 사용하는 Last Modified 태그나 E-Tag를 이용하면 캐싱 구현이 가능합니다.

4) Self-descriptiveness (자체 표현 구조)

REST API 메시지만 보고도 쉽게 이해 할 수 있는 자체 표현구조

 

4. REST API 디자인 가이드

중요한 두가지

(1) URI는 정보의 자원을 표현해야 한다.

(2) 자원에 대한 행위는 HTTP Method (GET POST PUT DELETE)로 표현한다.

 

4-1. REST API 중심 규칙

(1) URI는 정보의 자원을 표현해야 한다.

members/delete/1 (X)

URI는 자원을 표현하는 것만 하도록!

delete 행위표현은 들어가면 안된다.

 

-> DELETE /members/1 으로 수정한다.

(2) 자원에 대한 행위는 HTTP Method (GET POST PUT DELETE)로 표현한다.

Method 역할
POST 요청시, 리소스 생성
GET 리소스 조회, 정보 가져온다
PUT 리소스 업데이트
DELETE 리소스 삭제

CRUD : 기본적인 데이터 처리 기능 4가지를 묶어 일컫는 말.

이름 조작 SQL
Create 생성 INSERT
Read 읽기 SELECT
Update 갱신 UPDATE
Delete 삭제 DELETE

 

5. HTTP 응답 상태 코드

상태코드  
200 클라이언트의 요청 정상수행
201 클라이언트가 리소스 생성 요청, 해당 리소스 성공적으로 생성 (POST 사용시)
400 클라이언트 요청이 부적절 할 경우 사용
401  클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을 때 사용하는 응답 코드
403 유저 인증상태와 관계없이 응답하고 싶지 않은 리소스를 클라이언트가 요청했을 때 사용하는 응답 코드
(403 보다는 400이나 404를 사용할 것을 권고. 403 자체가 리소스가 존재한다는 뜻이기 때문에)
405 클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용했을 경우
301 클라이언트가 요청한 리소스에 대한 URI가 변경되었을 때 
500 서버에 문제가 있을 경우