GraphQLスキーマに新しいクエリとミューテーションを追加する方法

実装はどのような順序でも可能です。

ドメインレイヤーの実装

ドメインモデルはpkgで実装すること

インフラストラクチャーレイヤーの実装(必要な場合)

internal/infrastructureの下に実装する必要があります。

ユースケースレイヤーの実装

機能ユースケースレイヤーを実装するためには、主に2つのステップを踏む必要があります:

  1. internal/usecase/interfacesにユースケース・インターフェースを作成する。
  2. usecaseをinternal/usecase/interactorの下に作成し、最初のパラメータとしてcontext.Contextを受け入れる必要があります。また、ほとんどのユースケースは*usecase.Operatorを受け入れることができ、これは一部の認可を処理するために使用できます。
  3. インターフェイスの実装:internal/usecase/interactor/の下で行われ、ドメインレイヤーとインフラストラクチャーレイヤーのコールを含む必要があります。

GraphQLスキーマの定義とgo generateの実行 → アダプタレイヤーの実装

gqlgenライブラリは、graphqlのコードを生成するために使用されます。スキーマファーストのアプローチなので、新しい型や ミューテーションを開発するためには、schema.graphqlファイルで宣言する必要があり、スキーマ宣言後に go generate ./internal/graphqlを実行して関連コードを生成する必要があります。

gqlgenライブラリは、internal/adapter/graphql/controller_*.goで表されるアダプタレイヤーまでの関連コードを生成します。

アダプターレイヤーは通常、ユースケースレイヤーに関連するべきです。このレイヤーでは、コードにはビジネスロジックは含まれず、ドメインモデルとGraphQLタイプ間の変換、およびユースケース レイヤーの呼び出しが含まれるはずです。