go-ddd-practice
├── .vscode
├── pkg
| ├── controller
| | ├── response
| | | └── response.go
| | ├── app_controllers.go
| | ├── master_controllers.go
| | └── routers.go
| ├── error
| | └── errors.go
| ├── infrastracture
| | ├── db
| | | ├── db.go
| | | └── tx.go
| | ├── repository
| | | └── account_repository.go
| | └── security
| | └── security.go
| ├── model
| | └── accounts.go
| ├── test
| | └── master_test.go
| └── usecase
| ├── dto
| | ├── app_dto.go
| | ├── dto.go
| | └── master_dto.go
| ├── app_service.go
| └── master_service.go
├── .env
├── go.mod
├── go.sum
└── main.go
accounts
論理名 |
物理名 |
主 |
型 |
必須 |
桁数 |
一意 |
備考 |
ID |
id |
〇 |
int |
〇 |
|
〇 |
|
作成日時 |
created_at |
|
datetime |
|
|
|
|
更新日時 |
updated_at |
|
datetime |
|
|
|
|
削除日時 |
deleted_at |
|
datetime |
|
|
|
|
パスワード |
password |
|
varchar |
〇 |
500 |
|
SHA-256でハッシュ化 |
アクセストークン |
access_token |
|
varchar |
|
500 |
|
|
アカウント名 |
name |
|
varchar |
〇 |
50 |
|
|
メールアドレス |
email |
|
varchar |
〇 |
50 |
|
|
- IDはgorm.ModelのAIをそのまま利用
- 返すアクセストークンはJWTなどで生成せず、ハードコードして一応ハッシュ化
Login |
|
メソッド |
POST |
URI |
/api/login |
説明 |
IDとパスワードを入力してログインする。IDとパスワードが一致すれば、アクセストークンが発行される。 |
{
"id": 1,
"password": password
}
GetAccount |
|
メソッド |
GET |
URI |
/api/master/:id |
説明 |
アカウントを1件取得する。 |
GetAccountAll |
|
メソッド |
GET |
URI |
/api/master |
説明 |
アカウントを全件取得する。 |
RegisterAccount |
|
メソッド |
POST |
URI |
/api/master |
説明 |
アカウントを登録する。 |
{
"name": "山田 太郎",
"password": "Yamada_Taro01",
"email": "yamada@example.com"
}
EditAccount |
|
メソッド |
PUT |
URI |
/api/master/edit |
説明 |
アカウントを編集する。 |
{
"id": "1",
"name": "山田 太郎",
"email": "yamada@sample.com"
}
DeleteAccount |
|
メソッド |
DELETE |
URI |
/api/master/delete |
説明 |
アカウントを論理削除する。 |