끄적대기

HTTP REST API

alpha-star 2022. 3. 24. 01:48
728x90
반응형

˙REST API

 ▷ REpresentational State Transfer : REST API

   로이 필딩(Roy Fielding)의 박사학위 논문에서 최초로 웹 설계(HTTP) 설계의 우수성에 비하여 제대로 사용되지 못하는 경우에 안타까운 마음을 가지고 웹의 장점을 최대한으로 살리고 활용할 수 있는 아키텍처로 REST를 소개하였다. REST의 구성은 크게 3가지의 형태인 자원(Resource), 행위(Verb), 표현(Representations)으로 이루어져 있다.

 

˙REST API 특징

 ▷ Uniform : 유니폼 인터페이스

   지정된 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일이다.

 

 ▷ Stateless : 무상태성

   작업을 위한 상태 정보를 관리 또는 저장하지 않는다. 따라서, API 서버는 들어오는 요청만 처리하게 되면서, 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않는다.

 

 ▷ Cacheable : 캐시 기능

   HTTP가 가진 생각을 그대로 이용하기 때문에 캐싱* 기능 적용이 가능하다.

 

 ▷ Self-descriptiveness : 자체 표현 구조

   REST API의 메시지만 보고도 이를 쉽게 이해할 수 있는 자체적인 구조이다.

 

 ▷ Client-Server 구조

   API를 제공하고, 클라이언트 사용자 인증 정보를 직접 관리하는 구조로 각각의 역할이 명확하게 구분되기 때문에, 자연스럽게 의존성*이 줄어들게 된다.

 

 ▷ 계층형 구조

   사용자 측면에서는 REST API 서버만 호출하는 형태이다. 하지만, 서버는 다중 계층으로 구성할 수 있고, 보안이나 로드 밸런싱, 암호화 계층*을 추가하는 등의 작업으로 구조상의 유연성을 둘 수 있다. PROXY*, Gate-Way*와 같은 네트워크 기반의 매체를 사용할 수 있다.

 

 

˙REST API 규칙

 - URI* 디자인에 있어 URI는 정보의 자원을 표현하고, 자원에 대한 행위는 HTTP Method로 표현한다.

 - 슬래시(구분자, '/')는 계층 관계를 나타내는 데에 사용한다. 단, 마지막 문자에는 포함하지 않는다.

 - 언더스코어('_')보다는 하이픈('-')이 가족성을 높이는데 좋다.

 - 경로 지정에는 대문자보다 소문자가 적합하고, 파일 확장자나 시스템 경로 등은 URI에 포함하지 않는다.

 

˙REST API Method

 - GET : 리소스를 조회

 - POST : 리소스를 생성

 - PUT : 리소스를 수정

 - DELETE : 리소스를 삭제

 

 

 

 * 캐싱 : 명령어와 데이터를 캐시 기억 장치 또는 디스크 캐시에 일시적으로 저장하는 행위

 * 의존성 : 어떠한 행위나 동작에 대하여, 두 가지가 가지게 되는 영향(의존)의 정도

 * 암호화 계층 : 개인정보 등의 보안적인 부분에 대한 기밀성을 유지할 수 있도록 도와주는 프로토콜 계층

 * PROXY : 서버와 클라이언트를 연결하는 서버로 보안이나 속도 적인 측면에서 사용

 * Gate-Way : 네트워크 통신을 위하는 것으로 통신속도 또는 트래픽 제어에 사용

 * URI : 통합 자원 식별자(Uniform Resource Identifier)는 인터넷에 있는 자원을 나타내는 유일한 구조

728x90
반응형