前提・実現したいこと
登録されている値をキーにして値を取得することは可能でしょうか。
言葉では説明が難しいのでサンプルを記載します。
データとしては下記のようなユーザー毎に名前と権限が設定されているレコードが並んでいます。
Request
1query UserByRole { 2 userProperties { 3 name 4 role 5 } 6}
Response
1{ 2 "data": { 3 "userProperties": [ 4 { 5 "name": "alice", 6 "role": "admin" 7 }, 8 { 9 "name": "bob", 10 "role": "customer" 11 }, 12 { 13 "name": "charlie", 14 "role": "customer" 15 } 16 ] 17 } 18}
このデータをrole
をキーにしてレスポンスを返したいです。
Response
1{ 2 "data": { 3 "admin": [ 4 { 5 "name": "alice", 6 "role": "admin" 7 } 8 ], 9 "customer": [ 10 { 11 "name": "bob", 12 "role": "customer" 13 }, 14 { 15 "name": "charlie", 16 "role": "customer" 17 } 18 ] 19 } 20}
試したこと
Fragmentを使ってべた書きであれば理想の形にすることが出来ましたが、
role
の種類が増えるたびにリクエストを変更しなければいけないので、
可能であればサーバーサイドでrole
が増えた場合でもクライアントを変更する必要が無いようなリクエストにしたいです。
Request
1query UserByRole { 2 admin: userProperties(where: {role: "admin"}) { 3 ...user 4 } 5 customer: userProperties(where: {role: "customer"}) { 6 ...user 7 } 8} 9 10fragment user on UserProperty { 11 name 12 role 13}
Response
1{ 2 "data": { 3 "admin": [ 4 { 5 "name": "alice", 6 "role": "admin" 7 } 8 ], 9 "customer": [ 10 { 11 "name": "bob", 12 "role": "customer" 13 }, 14 { 15 "name": "charlie", 16 "role": "customer" 17 } 18 ] 19 } 20}
補足情報(FW/ツールのバージョンなど)
動作確認はGraphCMSで試しています。
https://app.graphcms.com
以上です。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/02/07 00:23