답장프리젠 테이션 에스테이트 티랜스퍼
이름(자원의 표현)으로 자원을 식별하고 해당 자원의 상태(정보)를 주고받는 모든 것
즉, 자원의 표현에 의해 패스 상태수단
- 자원 : 해당 소프트웨어가 관리하는 모든 것(문서, 사진, 데이터, 소프트웨어 자체 등)
- 표현 : 자원을 나타내는 이름(DB에 있는 학생 정보가 자원인 경우 자원의 표현으로 ‘students’를 설정)
- 통과 상태: 데이터가 요청된 시점의 리소스 상태를 전달합니다. (JSON이나 XML로 데이터를 주고 받는 것이 일반적)
REST는 기본적으로 기존의 웹 기술과 HTTP 프로토콜을 그대로 활용하기 때문에,
웹을 최대한 활용한 건축 양식
네트워크를 통한 REST 클라이언트와 서버 간의사소통 방법 중 하나이다.
REST의 구성 요소
1. 리소스 – URI
- 모든 리소스에는 고유한 ID가 있으며 이 리소스는 서버에 존재합니다.
- 리소스를 식별하는 ID는 ‘/exgroups/:exgroup_id’와 같은 HTTP URI입니다.
- 클라이언트는 URI를 이용하여 자원을 지정하고 자원의 상태(정보) 조작을 서버에 요청한다.
2. 동사 – 방법
- HTTP 프로토콜 방식을 사용합니다.
- HTTP 프로토콜은 GET, POST, PUT, PATCH 및 DELETE 메서드를 제공합니다. ( CRUD ) GET 읽기 : 정보 요청, URI 정보를 검색하기 위해 서버에 요청.
얻다 읽기: 정보 요청, URI에 포함된 정보를 검색하기 위해 서버에 요청합니다. 우편 만들기: 정보를 입력하고 클라이언트에서 서버로 전달하려는 정보를 보냅니다. 놓다 업데이트: 정보 업데이트, 주로 콘텐츠를 업데이트하는 데 사용됩니다. (전체 데이터를 변경하는 경우) 반점 업데이트: 정보 업데이트, 주로 콘텐츠를 업데이트하는 데 사용됩니다. (데이터의 일부만 변경하는 경우) 삭제 삭제: 정보를 삭제합니다. (안전상의 이유로 대부분의 서버에서 비활성화합니다.)
3. 자원의 표현
- 클라이언트와 서버 간의 데이터 교환 형태로 JSON, XML, TEXT, RSS 등이 있다.
- JSON과 XML을 통해 데이터를 주고 받는 것이 일반적입니다.
REST의 특징
균일한 인터페이스 : HTTP 표준에 따라 어떤 언어나 플랫폼에서도 사용할 수 있는 인터페이스 스타일입니다. 특정 언어와 상관없이 사용할 수 있습니다.
무국적(상태 정보 유지 x) : Rest는 상태 정보를 유지하지 않습니다. 서버는 각 요청을 완전히 다른 것으로 취급합니다.
캐시 가능 : HTTP라는 기존 웹 표준을 그대로 사용하기 때문에 기존 인프라를 그대로 활용할 수 있습니다. 따라서 HTTP의 캐싱 기능을 적용할 수 있습니다.
자기 서술성(자기 서술적 구조) : REST API 메시지를 보면 쉽게 이해할 수 있는 자기 표현 구조를 가지고 있습니다.
REST의 장단점
장점
- HTTP 프로토콜의 인프라를 그대로 사용하기 때문에 REST API를 사용하기 위해 별도의 인프라를 구축할 필요가 없습니다.
- HTTP 프로토콜의 표준을 최대한 활용하여 몇 가지 추가 이점을 함께 제공할 수 있습니다.
- HTTP 표준 프로토콜을 준수하는 모든 플랫폼에서 사용할 수 있습니다.
- Hypermedia API의 기본을 충실히 지키면서 범용성을 보장합니다.
- REST API 메시지는 의도한 바를 명확하게 나타내므로 의미를 쉽게 파악할 수 있습니다.
- 다양한 서비스 설계로 인해 발생할 수 있는 문제를 최소화합니다.
- 서버와 클라이언트의 역할을 명확하게 분리하십시오.
불리
- 표준이 존재하지 않습니다.
- HTTP 메서드 유형이 제한됩니다.
- 브라우저를 통해 테스트할 것이 많은 서비스의 경우 Header 값이 쉽게 수정할 수 있는 URL보다 다소 어렵게 느껴집니다.
- 오래된 브라우저가 아직 제대로 지원하지 않는 부분이 있습니다.
RESTful API
개념
- RESTful은 REST라는 아키텍처를 구현하는 웹 서비스를 나타내는 데 일반적으로 사용되는 용어입니다. ‘REST API’를 제공하는 웹 서비스를 ‘RESTful’이라고 할 수 있습니다.
- RESTful은 REST와 같이 REST를 작성하는 방법이며 공식적으로 누구에게도 발표되지 않습니다. 즉, REST 원칙을 따르는 시스템을 RESTful이라고 합니다.
목적
- 이해하고 사용하기 쉬운 REST API 만들기
- RESTful API를 구현하는 근본적인 목적은 성능 향상이 아니라 일관된 관례를 통해 API에 대한 이해도와 호환성을 높이는 것이기 때문에 성능이 중요한 상황에서는 굳이 RESTful API를 구현할 필요가 없다.
특성
- 사내 시스템도 REST 기반으로 배포하여 확장성과 재사용성을 향상시켜 유지 보수 및 운영이 편리합니다.