- router
- controller
- usecase
- repository
以下、リクエスト処理のフロー
クライアント側から送られてくる HTTP リクエストを受け取る
middleware の中でcsrf token
、JWT
のバリデーションを実行
バリデーションに問題がなければ、リクエストに対応する controller を呼び出す。
HTTP リクエストの body に書いてあるデータを usecase で利用できる形に加工し、usecase を呼び出す。
usecase の中では、ビジネスロジックを呼び出す。
ログインリクエストがあった場合、usecase の中で JWT トークンを生成する
CRUD 操作の制御を行う
DB への書き込み usecase から repository の機能を呼び出すことで DB に対する CRUD 操作ができるようになる
レスポンス
DB に与えた結果を usecase に返す
repository から返ってきた内容を、response 用に加工
usecase から受け取った値を json に変換して、クライアントに response として返却する
postgresSQL から MYSQL への仕様変更があった
usecase は repository のインターフェースだけに依存させる usecase と repository を直接依存させない