kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

GraphQLのサーバーを構築することでGraphQLを学ぶ

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でどう欲しいデータをうまく使えるようにするかがわかれば、開発が進みそうです。

参考

future-architect.github.io