티스토리 뷰

Computer Science

REST API 정리

kmj24 2022. 2. 26. 19:07

REST(Representation State Transfer, 자원의 상태 전달)

 - 웹에 존재하는 모든 자원을 고유이름(URI, Uniform Resource Identifier)으로 구분하여 해당 자원의 상태를 주고받는 모든것

 - 자원(Resource - URI), 행위(Verb - HTTP Method), 표현(Representation)

 - Web Site의 text, image 등과 같은 모든 자원에 고유한 ID(HTTP URI)를 부여

 - Json을 통하여 데이터를 주고받는것이 일반적이다.

 - Web의 기존기술, HTTP를 그대로 활용하는 Architecture

 - Client Server 간 통신 방식 중 하나이다.

 - CURD

   ▪ Create : 생성(POST)

   ▪ Read : 조회(GET)

   ▪ Update : 수정(PUT)

   ▪ Delete : 삭제(Delete)

   ▪ HEAD : header 정보 조회(HEAD)

 

REST의 특징

 - Client, Server가 서로 독립적으로 분리 되어 있어야 한다.

 - Interface 일관성 : 인터페이스의 일관성을 지키고, 아키텍처를 단순화하여 작은 단위로 분리하여, Client, server가 독립적으로 개선 될 수 있어야 한다.

 - Stateless : 작업을 위한 상태정보를 저장, 관리하지 않는 무상태성이다.

 - Cacheable : HTTP를 사용할 수 있으므로 캐싱기능을 적용할 수 있어햐 한다.

 - Code on Demand(Optional) : Java applet, JS, Flash 등 특정 기능을 Server로부터 Client가 전달받아 코드를 실행할 수 있어야 한다.

 

1. 자원의 식별

웹 기반의 REST에서는 리소스 접근할때 URI를 사용한다

https://foo.co.kr/user/100 

Resource : user

식별자 : 100

 

2. 메시지를 통한 리소스 조작

HTML, XML, JSON, TEXT 등을 통하여 데이터 전달

어떤 데이터타입인지 알려주기 위해 HTTP Header부분에 content-type을 통해 데이터 타입을 지정할 수 있음.

리소스 조작을 위해 데이터 전체를 전달하지 않고, 메시지로 전달.

 

3. 자기 서술적 메시지

요청하는 데이터가 어떻게 처리되어져야 하는지 충분한 데이터를 포함할 수 있어야 함.

HTTP에서는 HTTP Method와 Header정보, URI의 포함되는 정보로 표현할 수 있음.

 

REST API 설계

URI 정보의 자원을 표현

자원의 행위는 HTTP Method로 표현

HTTP Method → GET, POST, PUT, DELETE

GET Read, 리소스 조회, URI가 가진 정보를 검색하기 위해 Server에 요청
POST Create, 리소스 생성, Client에서 Server로 정보를 전송
PUT Update, 리소스 갱신
DELETE Delete, 리소스 삭제

자원의 행위는 HTTP메소드로 표현할 것

슬래시 문자(/)는 계층관계를 나타낼 때 사용

URI의 마지막에는 슬래시를 포함하지 않을 것

_를 사용하지 않을 것, 하이픈(-)을 사용할 것

소문자를 사용할 것

URI에 파일 확장자를 포함시키지 않을 것

그 외 담지 못한 정보들은 URI의 메시지를 통하여 표현

 

HTTP 응답 코드

100 - Client의 요청을 정상적으로 받았으며 계속 진행함

200 - Client의 요청을 정상 수행

201 - Client가 요청한 Resource생성(POST)을 성공적으로 수행

400 - Client의 요청이 부적절할 경우

401 - Client가 인증되지 않은 상태에서 보호된 Resource를 요청했을 경우

404 - Client가 유저의 인증과 상관없이 응답하지 못할(않할)  Resource를 요청했을 경우

405 - Client가 요청한 Resource에서 사용불가능한 Method를 이용했을 경우

301 - Client가 요청한 Resource에 대한 URI가 변경 되었을 경우(응답시 변경된 URI 전송)

304 - Client의 Cache값으로 Server에 이전에 남아있는 값과의 병행으로 해당 페이지를 읽을 수 없음.

500 - Server문제가 발생하여 응답할 수 없을 상태일 경우

 

4. Application 상태에 대한 엔진으로써 하이퍼미디어

REST API를 개발할때 단순하게 Client요청에 대한 데이터만 응답하는것이 아닌 관련된 리소스에 대한 Link정보까지 같이 포함되어져야 함.

 

 

 

'Computer Science' 카테고리의 다른 글

TCP/IP, UDP  (0) 2021.07.16
Web Socket, 웹 소켓  (0) 2021.06.06
Compile, Interpret  (0) 2021.04.09
[Architecture] 부하 분산(Load Balancing)  (0) 2021.03.28
자료구조(Data Structure)  (0) 2021.03.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함