このリポジトリは、DDD(Domain-Driven Design)アーキテクチャとGinフレームワークを使用したWebアプリケーションのサンプルです。
以下の機能を提供しています。
- ユーザーの登録、ログイン、ログアウト
- ユーザーの一覧表示、詳細表示、編集、削除
- ロール(管理者、一般ユーザー)に基づくアクセス制御
- Swaggerを使用したAPIドキュメント
以下の技術スタックを使用しています。
- Golang
- Gin - Webフレームワーク
- GORM - ORMライブラリ
- MySQL - データベース
- Swagger - APIドキュメント生成ツール
- K8s / Skaffold / Docker - コンテナ化
- Domain: Domain層は、アプリケーションのドメインとビジネスロジックが定義されます。
- Infrastructure: Infrastructure層は、DBアクセスなどの技術的関心を記述します。この層はDomain層に依存しています。 そのためInfrastructure層はDomain層のrepositoryで定義したインタフェースを実装します。
- Application: Application層は、ドメインとインターフェース層の間の通路として機能します。は、インターフェイス層からドメイン層に要求を送信し、ドメイン層はそれを処理して応答を返します。
- Interfaces: Interfaces層は、Webアプリケーションやバッチ処理など、他のシステムと対話するすべてのものを保持します。
- GitHub Page: https://linzhengen.github.io/ddd-gin-admin/docs/swagger-ui/
- Localhost: http://localhost:8080/swagger/index.html
make skaffold-dev
minikube service ddd-gin-admin-web --url -n ddd-gin-admin
make lint
make build