제 3 자 제품 용 Asp.Net 웹 API를 구축 중이며 API에 OData 4 사용을 고려하고 있습니다. 내 개체 모델에 상당한 자유가 있지만 기본 데이터 모델을 변경할 수는 없습니다.odata API를 작성할 때 복잡한 관계를 처리하는 방법은 무엇입니까?
odata는 관계를 정의하기위한 탐색 속성을 지원하지만 객체 간의 직접 링크 인 것처럼 보입니다. 많은 경우에 관계를 구축하고있는 데이터 모델에는 자체 속성이 있습니다. 예를 들어, '사용자'는 그룹, 조직 단위 등과의 '소속 그룹'의 소속 목록을 가지고 있으며 '소속 그룹'링크 자체는 '기본값 임'부울 속성을가집니다. 경우에 따라 관계에는 여러 속성이 있습니다.
이 문제를 해결하는 가장 좋은 방법이 있습니까? 속성이있는 '멤버쉽'엔티티를 만들고 네비게이션 속성이있는 사용자 (사용자> 멤버쉽> 그룹)에서 두 개의 홉을 가져야합니까? 'Membership'복잡한 유형을 만들어야 만 'Membership'의 컬렉션 인 'Memberships'속성을 만들고 'Membership'에 네비게이션 속성 (가능한 경우)이 있습니까? 이러한 옵션 중 하나를 사용하여 편의를 위해 그룹의 모든 구성원에게 읽기 전용 탐색 속성을 추가해야합니까 (사용자> 그룹)?
감사
지내는 관점합니다 ( Richardson Maturity Model level 3 참조)에서
감사합니다. Alexandru. 제 질문은 사용자와 그룹 간의 링크가 어디에 있는지에 관한 것입니다.하지만 귀하의 답변에 대해서는 생각하지 않습니다. – AndrewS
[대상 속성] (https://tools.ietf.org/html/rfc5988#section-5.4)과 관련된 웹 연결 사양을 살펴보면 [확장] (https : // tools)이 가능해 보입니다. ietf.org/html/rfc5988#section-6.3) 응용 프로그램 별 데이터로 업데이트하십시오. –