soowanlog

REST API 본문

네트워크

REST API

개발자솬
네트워크

REST API

개발자솬 2024. 3. 8. 22:25
728x90
반응형
  • REST란?

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

즉, HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE 등)를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미합니다.

※ REST에서의 CRUD


Create : 데이터 생성(POST)
Read : 데이터 조회(GET)
Update : 데이터 수정(PUT)
Delete : 데이터 삭제(DELETE)
  • REST의 구성 요소

- 자원(Resource) : HTTP URI

 

- 자원에 대한 행위(Verb) : HTTP Method

 

- 자원에 대한 행위의 내용(Representations) : HTTP Message Payload

 

  • REST의 특징

- Server-Client :

서버-클라이언트 구조입니다.

 

- Stateless : 

Server side에 client와 server의 동작, 상태정보를 저장하지 않는 형태입니다.

 

- Cacheable :

HTTP를 그대로 사용하기 때문에 캐시 처리가 가능합니다.

 

- Layered Architecture :
수직적인 구조로 여러 계층을 각각의 역할에 따라 나눕니다.

각각의 계층은 자신에게 맞는 역할만 수행하게 되고 이에 따라 유지보수와 테스트가 용이합니다.

 

- Uniform Interface :

URI로 지정한 자원에 대한 조작을 통일되고 한정적인 Interface로 수행합니다.

 

  • API란?

API(Application Programming Interface)는 다른 SW 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성합니다.

 

많은 개발자들이 API에 대해 설명할 때 식당에 빗대어 표현합니다. 여기서 API는 식당의 점원이라고 생각할 수 있습니다. 손님(A-Server)의 주문을 점원(API)이 받아 요리사(B-Server)에게 전달하고 요리사(B-Server)가 만든 요리를 다시 점원(API)이 손님(A-Server)에게 전달해 줍니다. 이때 손님은 요리사가 어떤 방식으로 요리하는지는 알 필요가 없습니다.

 

이처럼 API의 장점은 구현 방식을 모르더라도 그저 가져다 사용하기만 하면 된다는 겁니다.

  • REST API란?

REST API란 REST의 원리를 따른 API를 의미합니다.

 

REST API를 올바르게 설계하기 위해서는 몇 가지 규칙이 있습니다.

 - URI는 동사보다는 명사를, 대문자보다는 소문자를 사용해야 합니다.

http://sw-log.com/Testing -> http://sw-log.com/test

 

- 마지막에 슬래시를 포함하지 않습니다.

http://sw-log.com/test/ -> http://sw-log.com/test

 

- 언더바 대신 하이폰을 사용합니다.

http://sw-log.com/test_java -> http://sw-log.com/test-java

 

- 파일확장자는 URI에 포함하지 않습니다. 

http://sw-log.com/test.jpg -> http://sw-log.com/test

 

- 행위를 포함하지 않습니다.

http://sw-log.com/test/insert -> http://sw-log.com/test

 

  • RESTful이란?

RESTful이란 REST의 원리를 따르는 시스템을 의미합니다.

즉, REST를 사용했다 하여 RESTful 한 것이 아니며 REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful 하다고 말할 수 있습니다.

참    고    자    료

- RESTful API란 무엇인가요? | aws

 

- REST API란? REST, RESTful이란? | 허진쓰의 서버사이드 기술 블로그

 

- REST API란? | RedHat

 

728x90
반응형

'네트워크' 카테고리의 다른 글

URI  (0) 2024.03.25
Proxy  (0) 2024.03.19
Packet  (0) 2024.03.06