sample-gin-ddd
本リポジトリはGo(Gin)のDDDサンプル実装です。主に学習用として実装しました。本来SSOなどまで実装する予定でしたが、時間の都合上ベーシック認証によるログインと簡単なREST-APIのみ実装しています。
各パッケージの役割を記載します。パッケージ内の詳細なファイルなどは直接リポジトリ内を確認してください。
├── .docker
| └── docker-compose.yml
├── .vscode
├── pkg
| ├── controller
| | ├── authority
| | | └── authority.go
| | ├── middleware
| | | └── middleware.go
| | ├── response
| | | └── response.go
| | ├── admin_master_controller.go
| | ├── app_controller.go
| | ├── master_controller.go
| | ├── routes.go
| | └── todo_controller.go
| ├── error
| | └── errors.go
| ├── infrastracture
| | ├── config
| | | ├── .env
| | | ├── config.go
| | | └── const.go
| | ├── db
| | | ├── db.go
| | | ├── orm.go
| | | └── tx.go
| | ├── repository
| | | ├── account_repository.go
| | | └── todo_repository.go
| | └── security
| | └── security.go
| ├── model
| | ├── fixture
| | | └── data_fixtures.go
| | ├── accounts.go
| | └── todos.go
| ├── test
| | ├── master_test.go
| | └── todo_test.go
| ├── usecase
| | ├── dto
| | | ├── admin_master_dto.go
| | | ├── app_dto.go
| | | ├── dto.go
| | | ├── master_dto.go
| | | └── todo_dto.go
| | ├── support
| | | ├── jwt.go
| | | └── mail.go
| | ├── admin_master_service.go
| | ├── app_service.go
| | ├── master_service.go
| | └── todo_service.go
| └── util
| ├── checker.go
| ├── convert.go
| └── time.go
├── go.mod
├── go.sum
└── main.go
厳密に細かい仕様は期待していません。詳しくはドキュメントを参考にしてください。
- DBの環境は以下を想定します。
- MySQL
- GORM
- create schemaのみ行う必要があります。
- .envに対してDB接続情報を定義してください。
- テーブルはGORMが提供するAutoMigrateを利用します。
- 各テーブルはアプリケーション起動時に作成されます。
- DataFixtures
- アカウント仮登録時のメール送信にMailHogを利用しています。Dockerの導入を行ってください。
- Dockerの起動後、メールは http://localhost:8025/ に送信されます。
- 送信されたメールアドレスにURLが付与されますが、URLはモックであり利用できません。
アプリケーションのスタートはデバッガを推奨しています。
Run and DebugのRun sample-gin-ddd
から実行してください。
MIT