문제

당신이 그것에 대해 생각할 때, 자원 지향적 인 나머지 패러다임은 객체 지향적 인 것으로 나타나지 않습니까 (제한된 기능, HTTP를 가능한 한 많이 활용).

나는 반드시 그것이 나쁜 것이라고 말하는 것은 아니라 오히려 그들이 본질적으로 동일합니다 그런 다음 매우 유사하게 휴식을 이해하는 것이 훨씬 쉬워지고 그러한 건축이 수반하는 의미가 훨씬 쉽게됩니다.

업데이트: 자세한 내용은 다음과 같습니다.

  1. 휴식 자원은 공개 클래스와 동일합니다. 개인 클래스/리소스는 단순히 노출되지 않습니다.
  2. 자원 상태는 클래스 공개 방법 또는 필드와 동일합니다. 개인 방법/필드/상태는 단순히 노출되지 않습니다 (이는 존재하지 않는다는 의미는 아닙니다).
  3. REST가 요청에 따라 고객 별 상태를 유지하지 않는 것은 확실히 사실입니다. 하다 모든 고객의 자원 상태를 유지합니다. 자원 가지다 상태와 같은 방식으로 클래스가 상태가 있습니다.
  4. REST 리소스는 서버 객체가 데이터베이스 주소, 테이블 이름 및 기본 키로 전 세계적으로 고유하게 식별되는 것과 같은 방식으로 URI에 의해 전 세계적으로 고유하게 식별됩니다. 이것을 대표 할 URI는 아직 (아직) 부여되었지만 쉽게 구성 할 수 있습니다.
도움이 되었습니까?

해결책

휴식은 모두 메시지 (즉, 방법)를 받아들이는 실체로서 세상을 모델링하지만 그 이상으로 다르다는 점에서 OO와 유사합니다.

객체 방향은 상태의 캡슐화를 강조합니다 불투명, 주에서 작동하는 데 필요한 여러 가지 방법을 사용합니다. 휴식은 (표현) 상태의 이전에 관한 것입니다. 투명도. 휴식에 사용 된 방법의 수는 제한되고 균일합니다. 모두 자원. OOP에서 가장 가까운 것은입니다 ToString() HTTP get과 매우 동일하는 방법.

객체 방향입니다 상태가 있습니다-당신은 객체를 참조하고 객체가 여전히 범위에있는 세션 내에서 상태를 유지하면서 메소드를 호출 할 수 있습니다. 휴식은 무국적-리소스로 수행하려는 모든 것은 단일 메시지로 지정되며 해당 메시지와 관련하여 알아야 할 모든 것은 단일 응답으로 다시 전송됩니다.

객체 지향에서 보편적 인 객체 정체성의 개념은 없습니다-Objects는 특정 순간에 메모리 주소, 프레임 워크 별 UUID 또는 데이터베이스 키에서 ID를 얻습니다. 휴식 중 모든 리소스는 URI로 식별됩니다 그리고 인스턴스화되거나 배치 될 필요는 없습니다. 서버가 404 찾을 수 없음 또는 410 사라졌습니다, whch의 경우 해당 URI에 대한 자원이 없다는 것을 알고 있습니다.

휴식은 안전 (예 : GET 메시지는 상태가 변경되지 않습니다) 및 Idempotence (예 : 여러 번 전송 된 PUT 요청은 한 번만 동일한 영향을 미칩니다). 특정 객체 지향 기술에 대한 일부 지침은 특정 구성이 상태에 어떤 영향을 미치는지에 대해 할 말이 있지만 실제로 안전과 우수성에 대해 말하는 객체 방향에 대해서는 실제로 아무것도 없습니다.

다른 팁

개념을 대상으로 표현할 수 있다고 말하는 것과 개념이 같은 객체 방향으로.

OO는 휴식 개념을 설명하는 방법을 제공합니다. 그렇다고해서 휴식 자체가 OO를 구현한다는 의미는 아닙니다.

당신이 맞습니다. 댄 코놀리는 썼다 기사 그것에 대해 1997 년 수비 논문 또한 그것에 대해 이야기합니다.

객체 묶음 상태와 함께 기능합니다. 리소스 지향은 명시 적으로 모델링 상태 (데이터)에 관한 것입니다 (데이터)에 관한 것입니다. Universal Semantics (HTTP, GET/PIT/POST/DELETE의 경우)를 사용하여 사전 정의 된 동사로 기능을 제한하고 나머지 처리를 클라이언트에 맡깁니다.

객체 지향 세계에는 이러한 개념에 동등한 것이 없습니다.

객체가 DTOS 인 경우에만 (데이터 전송 개체) - 지속성 이외의 행동을 할 수 없기 때문에.

예, 객체 지향과 평행이 맞습니다.

문제는 대부분의 웹 서비스 (REST, RESTFUL, SOAP, ..)가 객체의 형태로 정보를 전달할 수 있으므로 다른 것이 아닙니다. 비누는 더 많은 방법으로 서비스를 줄이는 경향이 있습니다. REST는 각각 몇 개의 통화로 더 많은 서비스 (리소스 유형 당 1 개)로 이어지는 경향이 있습니다.

예, REST는 물체의 전송에 관한 것입니다. 그러나 그것은 전체 대상이 아닙니다. 객체의 현재 상태. 암시 적 가정은 나머지 양쪽의 클래스 정의가 잠재적으로 유사하다는 것입니다. 그렇지 않으면 객체 상태가 새로운 객체로 강요되었습니다.

휴식은 물체의 생애에서 약 4 가지 이벤트 만 돌보고, 생성 (게시), 검색 (get), 업데이트 (put) 및 삭제. 그들은 중요한 사건이지만이 4 개만 있습니다.

물체는 다른 많은 개체와 함께 많은 다른 이벤트에 참여할 수 있습니다. 이 동작의 나머지 부분은 완전히 나머지 접근 방식을 벗어납니다.

긴밀한 관계가 있습니다. REST는 물체를 움직입니다. 그러나 동일하다고 말하면 객체를 방법이없는 수동적 인 비트 컬렉션으로 줄입니다.

REST는 단지 개체에 관한 것이 아니라 속성에 관한 것입니다 :: 새 전화 번호가있는/user/john/phone_number에 대한 게시물 요청은 새 개체를 추가하지 않으며 사용자 개체 'John'의 속성을 설정합니다.

이것은 대상의 전체 상태조차 아니지만 국가의 작은 부분으로의 변화 일뿐입니다.

확실히 1 : 1 경기가 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top