REST 란 무엇입니까 (간단한 영어) [닫기]


84

최근에 REST에 익숙해지는 데 관심을 갖게되었습니다. REST 에서 위키 항목을 읽으려고했지만 도움이되지 않았습니다. 누군가가 간단한 영어로 설명 할 수 있다면 정말 감사하겠습니다 (즉 불필요한 기술 전문 용어 가없는 것입니다 )

  1. REST 란 무엇인가
  2. 웹 아키텍처 생태계에서 차지하는 위치
  3. 프로토콜과 얼마나 밀접하게 연결되어 있습니까?
  4. REST의 대안은 무엇이며 REST는 이들과 어떻게 비교됩니까?

나는 한두 단락으로 이것에 대답하지 못할 수도 있음을 이해합니다.이 경우 관련 링크가 높이 평가 될 것입니다.



이 정보는 유익하지만 자세한 내용은 아닙니다. ibm.com/developerworks/webservices/library/ws-restful
NoChance

이 질문에 대한 답변이 가능한지 궁금합니다.
게리 로우

@ GaryRowe 하나의 답변을 표시했습니다. 어떤 이유로 제거 된 것 같습니다. 이 사이트를 이해하지 못합니다.
Gaurav

1
아래 답변 중 "idempotent"라는 단어는 사용하지 않습니다. dem 등식은 RESTful 아키텍처의 중요한 측면입니다.
Solomon Slow

답변:


10

REST 란 무엇입니까 (간단한 영어)

일반 영어 :

재현 : 말하거나 다른 사람을 대신하여 행동의 작용.
상태 전송 : 전송 상태.


인위적인:

  • 우리는 실제 객체를 전송하지 않고 형태로 표현합니다 (예 : 데이터베이스 테이블을 나타내는 xml / json / text).
  • 인터넷에서 공개 API를 노출하여 데이터에 대한 CRUD 작업을 처리하기위한 REST입니다. REST는 일관된 단일 인터페이스를 통해 명명 된 리소스에 액세스하는 데 중점을 둡니다.
  • REST는 일부 매체 유형을 통해 나타냅니다 . 미디어 유형의 예로는 XML, JSON 및 RDF가 있습니다.
  • REST는 사양 또는 표준이 아닌 ROA (Resource-Oriented Architecture)를 위한 아키텍처 스타일입니다 .
  • 건축 스타일은 개념, 이론 (및 구현 방법, 자신에게 달려 있음)을 의미합니다.
  • 모든 것은 고유 한 엔드 포인트로 식별됩니다. 즉, 각 리소스 (데이터)마다 하나의 엔드 포인트가 있습니다.
  • 끝점은 리소스 주소가있는 도메인 이름으로 구성됩니다.

REST 대 SOAP


43

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 등 참조).


"REST는 HTTP가 아닙니다"라고 말하지만 Roy Fielding은 하이퍼 텍스트 가 필요 하다는 아이디어에 상당히 고정되어있는 것 같습니다. 그에 따르면 HATEOAS 전체가 처리하지 않으면 서 "적절한"REST를하지 않습니다. 반면 하이퍼 텍스트 (hyper text) = HTTP, 나는 당신이 실제로 HTTP ... 외부에서 할 수있는 얼마나 궁금해!
안드레스 F.

이것에 따르면 ( Roy.gbiv.com/untangled/2008/… ) Roy Fielding은 어떤 종류의 링크를 지원하는 한 하이퍼 텍스트 나 그 서브셋 인 하이퍼 미디어를 HTML 외부에서 표현할 수 있다고 지적합니다.
게리 로우

3
HTTP는 REST를 사용하여 상태 비 저장 프로토콜에서 REST의 명사를 나타내는 URI 작업을위한 표준화 된 동사를 제공하므로 REST와 잘 작동합니다. 이상. 그러나 그의 논문 ( ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm )에서 그는 "REST는 특정 프로토콜에 대한 통신을 제한하지 않지만, 컴포넌트 간의 인터페이스를 제한하므로 구성 요소간에 이루어질 수있는 상호 작용 및 구현 가정 " 따라서 전체 FTP 구현이 클라이언트 측 상태 관리없이 RESTful하지는 않습니다.
Gary Rowe

2
마틴 파울러 링크 +1 평소와 같이 Martin Fowler는 가장 명확하고 간결한 방법으로 개념을 설명하는 기사를 작성했습니다
Tom Carter

당신은 state transfer표현 을 다루지 않았습니다. 누군가를 대신하여 말하거나 행동하는 행동은 이러한 맥락에서 어떻게 작용 하는가?
Premraj

11

REST는 Representational State Transfer의 약어이지만 다소 직관적 인 인터페이스를 통해 다양한 작업을 수행하는 아이디어를 고려하는 것이 더 쉬울 수 있습니다.

예를 들어, http://www.mysite.com/FindProduct/125/ 와 같은 URL 은 ID가 125 인 제품에 대한 정보를 원하는 사람으로 해석 될 수 있습니다.

REST는 일반적으로 HTTP와 관련하여 생각되지만 위키 백과 참조에 언급 된대로 다른 프로토콜에도 적용 할 수 있습니다.

유용한 REST의 다른 예 :


2
"Learn REST : A Tutorial"링크를 주셔서 감사합니다! 그것은 내가 읽은 첫 번째 튜토리얼입니다. 구체적인 내용을 배운 느낌이 들었습니다. 내가 읽은 다른 모든 것 (Wikipedia 기사 포함)은 기술 전문 용어로 둘러싸인 가장 추상적 인 방식으로 만 REST를 설명합니다.
Avian00

첫 번째 링크가 작동하지 않습니다. 그럼에도 당신의 대답은 도움이됩니다 !!
매니아
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.