내 데이터 모델에는 Folder
및 Messages
의 두 가지 리소스가 있습니다. 각 메시지는 폴더에 속합니다. 때로는 각 폴더의 일부 필드를 포함하여 폴더 목록을 가져 오려고합니다. 때로는 특정 폴더의 세부 정보 (해당 폴더에 대한 일부 필드 및 메시지 포함)를 가져 오려고합니다.GraphQL에서 "인덱스"목록과 "표시"세부 정보를 모델링하는 방법은 무엇입니까?
Rails/RESTful 시스템에서는 Folder
리소스에있는 index
및 show
작업에 해당합니다. 후자는 원하는 폴더를 지정하는 id
매개 변수를 수신합니다. 이 스키마는 "관용적 인"GraphQL에서 어떤 모습일까요?
한 가지 방법은 각 작업에 대해 하나 개의 필드가 될 수 있습니다
type Query {
folders: [Folder]
folder(id: String!): Folder
}
지저분한 보인다는 힘들어 클라이언트가 인트로 스키마를 이해할 수 있습니다 여기에 몇 가지 중복있다.
아마 중복이 널 (NULL) 인수를 제거 할 수 있습니다 : id
이 전달
type Query {
folder(id: String): [Folder]
}
경우, 그냥 Folder
의 세부 사항은 반환됩니다 (한 항목의 배열 등). id
이 nil
인 경우 모든 폴더의 세부 정보가 표시됩니다. 이 오버로드는 숨겨진 복잡성을 추가하는 것으로 보입니다.
어떤 접근 방식이 "우수 사례"입니까? 이 상황을 모델링하는 더 좋은 방법이 있습니까?