バックエンドAPIのソフトウェアアーキテクチャ - slcsol4/wyn-wiki GitHub Wiki

クリーンアーキテクチャを目指す
各レイヤーに属するモジュールの責務を単一責任の原則に従って分類わけしやすくするため、当レイヤーでの管理を採用する
ールの責務を単一責任の原則に従って分類わけしやすくするため、当レイヤーでの管理を採用する
各レイヤーの説明および責務を記載する
- 外界
- サービス・DB・UIなど
- 外界との相互作用を担当する層
- 業務ロジックは実装しない
- Out Side(クライアント)とのI/Fを担当する
- Restのルールに従って受け付けたリクエストを受け付けてcontrollerに引き渡す
- 認証・認可情報の処理を行う
- 責務
- apiのインタフェース
- データベースへのアクセスを管理する
- テーブルと1対1でclassが存在すると考えて相違ない
- アクセスのためのEntityをもつ
- メソッド種は主に以下の通り
- findBy ・・・ 主キー検索(entityを返す)
- selectBy ・・・ 条件検索(Listのentityを返す)
- insert ・・・ 登録(entityを登録する)
- delete ・・・ 削除(entityを削除する)
- update ・・・ 更新(entityを更新する)
- 責務
- findBy, selectBy
- DBの内容をentity化し、返却する
- insert, delete, update
- entityをDBに反映する
- findBy, selectBy
- API内部と外部のデータ変換を行う
- 業務ロジックを組み合わせて業務を実現する
- request-model・response-modelをもつものもある
- 責務
- GET系
- response-modelを作成して返却する
- domain-model → response-modelへの変換を行う
- response-modelを作成して返却する
- PUT・POST・DELETE系
- 依頼内容に応じた業務処理を実施する
- GET系
- 業務ロジックを担当する
- 責務
- Factory
- domain-modelと一対一の関係をもつ
-
完全なdomail-modelを作成する(完全でないといけない。一部の情報が欠けているのはNG)
- entity→domain-modelへの変換を行う
- Repository
- domain-modelを永続化する(登録・更新・削除)
- dmain-model→entityへの変換を行う
- domain-modelを永続化する(登録・更新・削除)
- Service
- domain-modelの妥当性を検証する
- Factory
- アプリケーションのデータ構造(domain-model)を管理する
- 責務
- データ構造を管理する