REST 란 무엇입니까?
대표 상태 이전. 한 시스템이 다른 시스템과 상태를 통신하는 방법을 설명합니다. XML, JSON 또는 일반 텍스트로 표시되는 제품 상태 (이름, 설명 등)가 그 예입니다. 국가의 일반화 된 아이디어를 자원이라고합니다.
웹 아키텍처 생태계에서 어떤 위치를 차지합니까?
HTTP는 지금까지 가장 일반적인 캐리어 프로토콜이므로 REST는 일반적으로 웹 서비스 인터페이스와 연관됩니다. 7 계층 모델에서는 애플리케이션 계층에 존재합니다 . 그러나 다음 섹션을 참조하십시오.
프로토콜과 얼마나 밀접하게 연결되어 있습니까?
REST는 HTTP가 아닙니다. 가장 일반적인 형태의 REST는 기계가 동사의 개념을 임의의 명사 콜렉션에 맵핑하는 데 도움을주기 때문에 HTTP를 사용합니다. HTTP에는 HTTP를 사용하여 URI로 표현 된 임의의 명사에 적용 할 수있는 유용한 일반 동사 (GET, PUT, PATCH 등)가 포함되어 있습니다 (예 : GET http://example.org/Product(54 )).
REST의 대안은 무엇이며 REST는 이들과 어떻게 비교됩니까?
이것은 "내 접근 방식이 얼마나 RESTful 한가?"와 유사합니다. 다음 목록을 사용하십시오 ( Martin Fowler가 설명한 Richardson Maturity Model 에서 요약 ).
레벨 0-POX의 늪
모든 것에 POST를 사용하십시오 (읽기, 쓰기, 삭제). 이것은 SOAP, POX, RPI 등입니다. HTTP를 자신의 프로토콜에 대한 터널로 사용하고 있습니다. 요청 본문의 내용을 기반으로 모든 작업을 수행하는 단일 엔드 포인트를 대상으로합니다.
레벨 1-리소스
모든 것을 위해 POST를 사용하십시오. 특정 사안에 대한 정보를 제공하도록 설계된 여러 엔드 포인트를 대상으로합니다. 방금 리소스를 발견했습니다.
레벨 2-HTTP 동사
리소스에 HTTP 동사를 사용하십시오. 지금 당신은 그것을 얻고 있습니다. POST는 PUT을 덮어 쓰고 사용 가능한 작업에 대한 옵션을 삭제하고 리소스를 삭제하는 것입니다. 이 동사를 사용하면 다른 HTTP 상태 코드 가 더 관련성이 높아지기 시작합니다 (202 ACCEPTED 누구입니까?).
레벨 3-하이퍼 미디어 제어 ( HATEOAS )
이 시점에서 최종 도약을하고 흐름 제어 메커니즘으로 하이퍼 미디어를 소개합니다. REST 클라이언트는 하이퍼 미디어에 대한 일반적인 이해를 넘어서 특정 애플리케이션 또는 서버와 상호 작용하는 방법에 대한 사전 지식이 필요하지 않습니다. 이는 Content-Type 헤더 필드를 통해 HTTP로 전달 될 수 있습니다. 텍스트 형식에는 AtomPub 및 (보다 간결한) HAL 이 포함되며 HyperAudio 는 오디오 스트림에 적합합니다 (SoundCloud 등 참조).