2017-01-01 20 views
0

我一直在尋找在我正在使用的項目中使用GraphQL。對於該項目,我們使用Haskell數據類型定義了整體數據結構(用於說明目的)。這包含類型,比如這個:Mimic在GraphQL中標記聯合?

data Requirement 
    = Purchased PurchaseId 
    | Attained Outcome Real 
    | Invited 

因此,對於一些要求可能是用戶有某一個項目,達到了一定的成績,或者被邀請。

從閱讀的文檔,我猜想,一個union是我想表達的類型的要求什麼,但有一個優雅的方式來處理有關的每個成員在內容的差異工會?

提前致謝!

回答

1

不用擔心,我自己解決了! Interfaces正是我所需要的。

實施例:

interface Requirement { 
    id: ID! 
} 

type Purchased implements Requirement { 
    id: ID! 
    mustHavePurchased: ID! 
} 

# etc...