티스토리 뷰

Network

REST API

Seogineer 2021. 3. 13. 00:00

REST(=RESTful) API(Representational State Transfer Application Programming Interface)

REST 구조의 제약 조건을 준수하는 API를 뜻함

웹의 장점을 최대한 활용할 수 있는 구조

 

REST 구성

자원(Resource) - URI

행위(Verb) - HTTP METHOD

표현(Representations)

 

REST 특징

1. Uniform Interface(통일된 방식) : URI로 지정된 리소스에 대한 조작을 통일된 방식으로 수행하는 구조

2. Stateless(무상태성) : API 서버는 들어오는 요청만 단순히 처리한다.

3. Cacheable(캐시 가능) : HTTP 프로토콜 표준에서 사용하는 Last-Modified Tag나 E-Tag를 이용하여 캐싱 기능을 구현할 수 있다.

4. Self-descriptiveness(자체 표현 구조) : REST API 메세지만 보고도 쉽게 이해할 수 있어야 한다.

GET / HTTP/1.1
Host: www.example.org <!-- 목적지 표시 -->
HTTP/1.1 200 OK
Content-Type: application/json-patch+json <!-- 문서 형식 표시 -->
\[{ “op” : “remove”, “path” : “a/b/c"}\]

5. Client - Server 구조 : Server는 API 제공, Client는 사용자 인증이나 세션, 로그인 정보 등을 직접 관리하는 구조로 각각의 역할이 확실히 구분되기 때문에 개발해야 할 내용이 명확해지고 서로간 의존성이 줄어든다.

6. 계층형 구조 : 다중 계층으로 구성될 수 있으며 보안, 로드밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 한다.

 

REST API 디자인 규칙

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

GET /members/delete/1 (X)	//delete와 같은 행위에 대한 표현은 들어가서는 안된다.
DELETE /members/1 (O)

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

GET /members/insert/2 (X) //GET 메서드는 회원 추가에 사용하기에 맞지 않다.
POST /members/2 (O)
METHOD 역할
POST 리소스 생성
GET 리소스 조회
PUT 리소스 수정
DELETE 리소스 삭제

 

참고

 

REST API 제대로 알고 사용하기 : NHN Cloud Meetup

REST API 제대로 알고 사용하기

meetup.toast.com

 

REST API(RESTful API, 레스트풀 API)란 - 서버, 구현, 사용법

REST API(RESTful API)란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다. api 서버, rest api 구현 및 사용법을 설명합니다.

www.redhat.com

 

HTTP 조건부 요청 - HTTP | MDN

HTTP 조건부 요청 영향을 받는 리소스들을 검사기 값을 이용해 비교함으로써, HTTP는, 성공인 경우라도, 요청의 결과가 변경될 수 있는 조건부 요청의 컨셉을 가지고 있습니다. 그런 요청들은

developer.mozilla.org

 

Last-Modified - HTTP | MDN

Last-Modified Last-Modified 응답은 HTTP 헤더에 서버가 알고있는 가장 마지막 수정된 날짜와 시각을 담고 있습니다. 이는 저장된 리소스가 이전과 같은지 유효성 검사자로 사용됩니다. ETag 헤더보다는

developer.mozilla.org

 

[REST API]REST를 사용할 때 주의해야할 점

REST를 만든사람 : 로이필딩, 박사학위 논문 (https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) REST API : REST 아키텍처를 따르는 시스템 구성요소 Client-Server stateless cache uniform interf..

sabarada.tistory.com

 

'Network' 카테고리의 다른 글

HTTP 상태 코드  (0) 2021.03.13
쿠키, 세션, 캐시  (0) 2021.01.04
댓글
Total
Today
Yesterday
링크
Apple 2023 맥북 프로 14 M3, 스페이스 그레이, M3 8코어, 10코어 GPU, 512GB, 8GB, 한글