2016-09-18 2 views
0

UserPermissionの2種類があるとします。既存のレコードを表すタイプのリストを参照する方法は?

type User { 
    id: ID! 
    firstName: String! 
    lastName: String! 
    email: String! 
    permissions: [Permission!] 
} 

type Permission { 
    id: ID! 
    name: String! 
} 

User関連するPermissionタイプレコードのリストが含まれpermissionsフィールドを持っています。

ユーザーが持つアクセス許可を更新する突然変異クエリを構成するにはどうすればよいですか?

答えて

1

私は単に私がGraphQLIDのリストにpermissionsパラメータを設定している変異

permissionsパラメータのIDタイプのリストを使用していました。

type Mutation { 
    updateUser (
    id: ID! 
    email: String 
    password: String 
    firstName: String 
    lastName: String 
    # List of Permission IDs 
    permissions: [ID!] 
): User 
} 

このアプローチの問題は、これがPermissionタイプとIDの間の関係を定義していないことです。したがって、私は "許可IDのリスト"のコメントを追加しました。

別のアプローチは、専用入力タイプを作成することです。

input PermissionInput { 
    id: ID! 
} 

そしてupdateUser権限パラメータではなく、IDにそれを使用。しかし、これは参照の問題を解決しません。

+1

私はちょうどこれらの最初のものと一緒に行くだろう、私は似て、その絶対にうまくいった。 –

0

残念ながら、私はコメントだけを追加することはできませんが、同じ方法で問題を解決しますが、データの形状の明確さと一貫性を保証するために、特定のIDフィールドを使用します。私。我々はこのように入力を定義します

type Mutation { 
    updateUser (
    id: ID! 
    email: String 
    password: String 
    firstName: String 
    lastName: String 
    permissionIds: [ID!] 
): User 
} 

かなり基本的な違いが、それは明らかに、各フィールド名は直感的で、多くのオーバーヘッドがない、出力から入力を区別します。

+0

まさに私が最後に行ったことです。 :-) – Gajus

関連する問題