GraphQLの理解が進まないため一度チュートリアルを試すことにしました。
参考記事を参考に、手を動かしてGraphQLを触ってみました。(参考記事のままです)
- Golang + (gqlgen)
- Docker
- PosgreSQL
コードもgithubに上がっており、あまり詰まらずに試すことができました。
サーバー側を書くことで疑問解消
amplifyを使用していたことにより、いろいろな疑問がありましたが今回サーバー側のコードを試すことで解決していきました。
- データのsort周り
- 型( type )
- queryの定義
データのsortについては、渡すデータにより可能。ただしamplifyはdynamoDbを標準に使用するため、標準的に作られるgraphQLのqueryには定義されていない。amplifyでsearchのdirectionをつければ可能かはあとで試す。
typeは渡されるデータの種類になるからintとstringがあれば、サーバー実装次第で作れる。あまり複雑な内容は作らない方がいいと思うが、graphQL標準で用意する必要がないことを理解。
queryの定義についても、サーバーに定義を追加することどの情報を取得するかサーバーで定義することができる。データの関連に関しても、サーバーで自由に定義できる。クライアントからのクエリで取得内容は変えることができるが、サーバーのクエリ次第でデータ取得のコストは変わるため、サーバーの実装が重要になる。
結論
サーバーの実装を結局は実装する必要があるため、自分が予想していたよりはサーバーを実装するためコストは高くなりそうです。
ただしデータの関連を取得することについては、自由度をあげることが可能ですね。
このあたりが便利になる要因だと感じました。
たしかに本でgraph理論が最初に説明されるわけですね。ようやく具体的な使い方が見えてきた感じです。
あとはamplifyでどう欲しいデータをうまく使えるようにするかがわかれば、開発が進みそうです。