REST 시스템과 RESTful 시스템의 차이점은 무엇입니까?
내가 가장 많이 읽은 몇 가지 사항에서 REST 서비스는 실제로 RESTful 서비스입니다. 두 가지의 차이점은 무엇입니까?
REST 시스템과 RESTful 시스템의 차이점은 무엇입니까?
내가 가장 많이 읽은 몇 가지 사항에서 REST 서비스는 실제로 RESTful 서비스입니다. 두 가지의 차이점은 무엇입니까?
답변:
REST (Representational State Transfer) 는 소프트웨어 아키텍처 스타일입니다. Roy Fielding의 논문에서 설명했듯이 REST는 기본적으로 웹의 기존 기술과 프로토콜을 활용하는 "아키텍처 스타일"입니다.
RESTful은 일반적으로 이러한 아키텍처를 구현하는 웹 서비스를 나타내는 데 사용됩니다.
architect
어떤? URL? 같은 https://translation.googleapis.com/language/translate/v2
이 나머지 스타일은?
이 2를 구별하거나 비교하려면 REST 가 무엇인지 알아야합니다 .
REST는 ( RE 표상 S 탓에 T 를 ransfer) 기본적으로 개발 몇 가지 원칙을 갖는 건축 스타일 :
무국적이어야한다
URI 만 사용하여 서버에서 모든 리소스에 액세스해야합니다.
내장 암호화가 없습니다.
세션이 없습니다
하나의 프로토콜 만 사용합니다-HTTP
CRUD 작업을 수행하기 위해, 이러한 동사 HTTP를 사용해야하는 등 get
, post
, put
및delete
JSON 또는 XML, atom, OData 등의 형식으로 만 결과를 리턴해야합니다 (경량 데이터).
REST based services
위의 원칙 중 일부를 따르십시오.
RESTFUL services
위의 모든 원칙을 준수한다는 의미입니다.
다음과 같은 개념과 유사합니다.
Object-based languages
모든 OOP 개념, 예제 지원 : C ++, C #
Object oriented languages
죄송 기능의 일부를 지원 예 자바 스크립트, VB를 :
예 :
ASP Dot NET MVC 4는 REST-Based
Microsoft WEB API가있는 동안입니다 RESTFul
.
MVC는 위의 REST 원칙 중 일부만 지원하는 반면 WEB API는 위의 모든 REST 원칙을 지원합니다.
MVC는 REST API에서만 다음을 지원합니다.
URI를 사용하여 리소스에 액세스 할 수 있습니다
서버에서 리소스에 액세스하기 위해 HTTP 동사를 지원합니다.
결과는 JSON, XML 형식 (HTTPResponse)으로 결과를 리턴 할 수 있습니다.
그러나 MVC에서 동시에
우리는 세션을 사용할 수 있습니다
우리는 그것을 stateful로 만들 수 있습니다
기본적으로 REST 원칙을 위반하는 컨트롤러 작업 방법에서 비디오 또는 이미지를 반환 할 수 있습니다.
그렇기 때문에 MVC는 REST-Based
WEB API가 위의 모든 원칙을 지원하고 있습니다 RESTFul
.
"REST"는 건축 패러다임입니다. "RESTful"은 해당 패러다임 사용을 설명합니다.
architect
어떤? URL? 같은 https://translation.googleapis.com/language/translate/v2
이 나머지 스타일은?
REST는 표현 상태 전송을 나타냅니다. 그것은 국가 자체가 이전되는 것이 아니라 단지 국가의 표현이라는 것을 의미합니다. 가장 일반적인 예는 순수한 HTML 서버 기반 앱입니다 (자바 스크립트 없음). 브라우저는 응용 프로그램 자체에 대해서는 아무것도 모르지만 링크와 리소스를 통해 서버는 응용 프로그램의 상태를 브라우저로 전송할 수 있습니다. 일반 Windows 응용 프로그램에서 단추가 일반적으로 상태 변수 (예 : 페이지 열기)를 변경하는 경우 브라우저에는 해당 상태 변경을 나타내는 링크가 있습니다.
아이디어는 하이퍼 미디어를 사용하는 것입니다. 그리고 아마도 새로운 하이퍼 미디어 유형을 만들 수도 있습니다. 잠재적으로 우리는 javascript / AJAX로 브라우저를 확장하고 새로운 사용자 정의 하이퍼 미디어 유형을 만들 수 있습니다. 그리고 우리는 진정한 REST 애플리케이션을 가질 것입니다.
이것은 REST의 약자 인 짧은 버전입니다. 문제는 구현하기 어렵다는 것입니다. REST 원칙을 참조하고 싶을 때 개인적으로 RESTful이라고 말하지만 실제로 REST의 전체 개념을 구현하고 있지는 않습니다. 우리는 SOAPful을 사용하지 않기 때문에 실제로 SOAPful을 말하지 않습니다. 필자는 대부분의 사람들이 개발자 Roy Fielding이 계획 한 방식으로 REST를 수행하지 않는다고 생각합니다. 실제로 RESTful 또는 RESTlike 아키텍처를 구현합니다. 그의 논문을 볼 수 있으며 REST 약어는 있지만 RESTful이라는 단어는 없습니다.
REST는 분산 소프트웨어를위한 소프트웨어 아키텍처 스타일입니다.
REST 제약 조건을 준수하는 것을 'RESTful'이라고합니다.
오늘날 SOAP에 대한 대안으로 웹 서비스를 구축하는 데 사용됩니다.
여기에 확인할 링크가 있습니다
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/
답변 주셔서 감사합니다. Alex Rodriguez 의이 기사 를 읽으십시오 . RESTful 웹 서비스에는 다음과 같은 4 가지 기본 특성이 있습니다.
REST (Representational State Transfer)는 World Wide Web과 같은 분산 하이퍼 미디어 시스템을위한 소프트웨어 아키텍처 스타일입니다. Representational State Transfer라는 용어는 2000 년 Roy Fielding 1에 의해 그의 박사 학위 논문 에 도입되고 정의되었습니다 . 필딩은 HTTP (Hypertext Transfer Protocol) 사양 버전 1.0 및 1.1의 주요 저자 중 하나입니다. REST 제약 조건을 준수하는 것을 'RESTful'이라고합니다. 출처 : 위키 백과
웹 서비스는 본질적으로 사람이 아닌 컴퓨터 프로그램에서 콘텐츠를 사용하는 웹 사이트입니다. REST는 웹 서비스가 HTTP 및 기타 웹 표준을 최대한 활용하여 프로그램이 사람들이 이미 웹에서 얻을 수있는 모든 좋은 것을 얻도록 규정하는 일련의 아키텍처 원칙입니다. REST는 종종 SOAP 웹 서비스 및 기타 "원격 프로 시저 호출"지향 웹 서비스와 대조됩니다.
Stefan Tilkov의 Parleys.com에서 REST에 대한 프레젠테이션은 특히 좋습니다 .
책의 경우 Richardson과 Ruby의 Restful Web Services 보다 더 나을 수는 없습니다 .
REST 기반 서비스를 "RESTful 서비스"라고합니다.
출처 : Dr.Dobbs Archive
Richardson Maturity Model에는 4 가지 수준의 API가 정의되어 있습니다. 이들은 다음과 같이 정의됩니다.
레벨 0 : 모든 API에 대해 단일 엔드 포인트가있는 시스템 (SOAP 또는 RPC가이 범주에 해당). 레벨 0 api는 "명령"과 유사 할 수 있습니다.
레벨 1 : ResourceUri 기술 시스템. 레벨 0 시스템과 같은 단일 엔드 포인트가 아닌 여러 엔티티 기반 URI를 정의하는 시스템입니다. 이러한 URI는 다른 http 조치 (POST, GET, PUT 등)를 사용하여 해당 자원에 대해 다른 조치를 구현할 수 있습니다.
레벨 2 : 표준 HTTP 메소드 / 동사 및 다중 상태 코드 응답을 준수하는 일명 레벨 1
3 단계 : 일명 2 단계 + HATEOAS (응답에 하이퍼 미디어가 포함되어있어 추가 전화를 걸 수 있음)
레벨 1, 레벨 2 및 레벨 3은 REST 시스템으로 간주 될 수 있지만 더 엄격한 레벨 (일명 레벨 2 및 레벨 3) 만 RESTful로 간주됩니다.
따라서 본질적으로 모든 RESTful API는 REST API이지만 모든 REST API가 RESTful은 아닙니다.
"REST 서비스"와 "RESTful 서비스"는 하나이며 동일합니다.
RESTful 시스템은 RESTful 네트워크 애플리케이션의 아이디어를 만든 원본 문서에 정의 된 REST 규칙을 따르는 시스템입니다 .
다양한 수준의 RESTfulness가 있음을 주목할 가치가 있습니다. 전반적으로 REST는 표준이 아닌 스타일이므로 필요에 따라 해석 할 여지가 있습니다. 한 가지 예는 계층 적 리소스 URL (예 /things/ID/relatedthings
:)과 플랫 URL (예 : /things/ID
및 /relatedthings?thing=ID
)입니다.