2010-06-25 3 views
1

OK 이제 REST 웹 서비스에 대한 몇 가지 작업이 있습니다. 여러 작업 사이에 엔티티가 일부 겹치지 만 일부 요소/속성을 수행하는 것에 따라 관련이 없습니다.REST 엔터티 이해 (요청 및 응답을 기반으로 한 변형)

예 : 나는 속도를 요청하면 내가 다시 얻을 필요가 :

<Property id=””> 
    <Rooms> 
    <Room> 
     <Rates> 
     <Rate></Rate> 
     </Rates> 
    </Room> 
    </Rooms> 
</Property> 

을하지만 난 그냥 객실의 목록을하고자 할 때 - 난 단지 원하는 :

<Property id=””> 
    <Rooms> 
    <Room> 
    </Room> 
    </Rooms> 
</Property> 

내 GET 객실 요청만을 입력으로 필요

<property id=””></property> 

그러나 속성의 전체 정의를 기반으로 - 내가 가기 예제에 따라 모든 것을 포함하여 내 샘플 getroomsRequest의 XML 구조의를 생성 할 때.

다른 명명 된 엔티티를 선언해야합니까? 아니면 공통의 엔티티를 사용할 수있는 방법이 있습니까?하지만 관련이없는 경우 어떻게해야합니까?

감사합니다. 가능한/최선의 방법이 확실하지 않습니다.

답변

0

어려움을 느끼기 시작한 이유는 도메인 개념 (속성, 룸, 요금)과 REST 리소스간에 직접 매핑을 만들기 때문입니다.

제 생각에는 REST 리소스는 시스템의 사용 사례를 나타내는 것이어야합니다. "속성/1/객실 요금", "속성/1/객실". 리소스는 도메인 계층보다 UI 계층입니다.

일부 REST 프레임 워크는 반환 할 데이터 조각을 정확하게 쿼리 문자열에 지정할 수있는 메커니즘을 구현하기 시작했습니다. 다시 생각해 보면, 이것은 정말로 나쁜 생각입니다. 그것은 캐시의 유용성을 심각하게 제한하고 클라이언트와 서버 사이에 더 많은 결합을 만듭니다.

REST 시스템에서 비즈니스 계층의 어떤 것과도 상관 관계가 없더라도 새로운 리소스를 생성 할 염려가 없습니다. REST 기반 시스템을 설계 할 때 개발자가 겪는 대부분의 문제는 하나 또는 두 개의 새로운 개념을 자원으로 작성하여 해결할 수 있습니다.

관련 문제