728x90
반응형
REST API
Representational state transfer
REST 는 분산 하이터 미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.
REST 는 네트워크 아키택쳐 원리의 모음이다.
네트워크 아키텍쳐 원리란 자원을 정의하고 자원에 대한 주소를 지정하는 전반을 일컫는다.
웹 상의 자료를 HTTP 위에서 SOAP 이나 쿠키를 통한 세션 트래킹 같은 별도의 전송 계층 없이
전송하기 위한 아주 간단한 인터페이스를 말한다.
REST 아키택처에 적용되는 6가지 제한 조건
- 인터페이스 일관성
- 일관적인 인터페이스로 분리 되어야 한다.
- 무상태
- 각 요청 간 클라이언트의 콘텍스트가 서버에 저장 되어서는 안된다.
- 캐시 처리 가능
- www 에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다.
- 잘 관리 되는 캐싱은 클라이언트 - 서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability 와 성능을 향상 시킨다.
- 계층화
- 클라이언트는 보통 대상 서버에 직접 연결 되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상 시키는 데 유용하다.
- Code on demand(optional)
- 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능읗 롹장 시킬 수 있다.
- 클라이언트 서버 구조
- 아키텍쳐를 단순화 시키고 작은 단위로 분리 함으로써 클라이언트 서버의 각 파트가 독립적으로 개선 될 수 있도록 해준다.
REST 인터페이스의 원칙
- 자원의 식별
- 요청 내에 기술된 개별 자원을 식별할 수 있어야 한다.
- 웹 기반의 REST 시스템에서의 URL 의 사용을 예로 들 수 있다.
- 자원 그 자체는 클라이언트가 받는 문서와는 개념적으로 분리되어 있다. 예를 들어 서버는 데이터베이스 내부의 자료를 직접 전송하는 대신, 데이터 베이스 레코드를 HTML, XML 이나 JSON 등의 형식으로 전송한다.
- 메세지를 통한 리소스의 조작
- 클라이언트가 어떤 자원을 지칭하는 메세지와 특정 메타 데이터만 가지고 있다면 이것으로 서버 상의 해당 자원을 변경, 삭제 할 수 있는 충분한 정보를 가지고 있는 것이다.
- 자기서술적 메세지
- 각 메세지는 자신을 어떻게 처리해야 하는지에 대한 충분한 자료를 포함해야 한다.
- 예를 들어 MIME type 과 같은 인터넷 미디어 타입을 전달한다면, 그 메세지에는 어떤 파서를 이용해야 하는지에 대한 정보도 포함해야 한다.
- 미디어 타입만 가지고도, 클라이언트는 어떻게 그 내용을 처리해야 할지 알 수 있어야 한다.
- 메세지를 이해하기 위해 그 내용까지 살펴봐야 한다면, 그 메세지는 자기 서술적이 아니다.
- 예를 들어 단순히 "application/xml" 이라는 미디어 타입은, 실제 내용을 다운로드 받지 않으면 그 메세지만 가지고는 무엇을 해야 할지에 대해 충분히 알려주지 못한다.
- 애플리케이션의 상태에 대한 엔진 으로서 하이퍼 미디어
- 만약에 클라이언트가 관련된 리소스에 접근하기를 원한다면, 리턴되는 지시자에서 구별 될 수 있어야 한다. 충분한 콘텍스트 속에서의 URL 을 제공해주는 하이터 텍스트 링크를 예로 들 수 있다.
REST 의 주요 목표
- 구성 요소 상호작용의 규모 확장성
- 인터페이스의 범용성
- 구성 요소의 독립적인 배포
- 중간적 구성요소를 이용해 응답 지연 감소, 보안을 강화, 레거시 시스템을 인캡슐레이션
728x90
반응형
'개발중 > Web' 카테고리의 다른 글
비동기와 동기에 대해서 알아보기 - 예시 🙌 (1) | 2022.04.15 |
---|---|
테스트 DB 와 운영 DB 관리 하는 법 (0) | 2021.10.05 |
다음 주소창 이용하기 (0) | 2020.08.05 |
Web 이미지를 a 태그로 (0) | 2020.08.04 |
댓글 저장, 수정, 삭제 기능 구현하기 (0) | 2020.08.03 |