golang製 REST API ボイラーテンプレート
- mysql: 8.0.28
- go: 1.19.2
- net/http
- gorm
- sql-migrate
- gorilla/sessions
- github actions
TODOリストAPI
- 認証機能は UserId をセッションに保存
メソッド | URI | 認証有無 | |
---|---|---|---|
- | GET | / | なし |
メソッド | URI | 認証有無 | クエリ | リクエストボディ | |
---|---|---|---|---|---|
ログイン | POST | /auth/sign_in/ | なし | AuthSignInRequestDto | |
会員登録 | POST | /auth/sign_up/ | なし | AuthSignUpRequestDto |
メソッド | URI | 認証有無 | クエリ | リクエストボディ | |
---|---|---|---|---|---|
ログインユーザー情報取得 | GET | /auth/user/ | あり | ||
ユーザー更新 | PUT | /auth/user/ | あり | AuthUserUpdateRequestDto | |
ユーザー削除 | DELETE | /auth/user/ | あり |
メソッド | URI | 認証有無 | クエリ | リクエストボディ | |
---|---|---|---|---|---|
ユーザーに紐づく全Todoデータ取得 | GET | /todos/ | あり | ||
単一Todoデータ取得 | POST | /todos/id/ | あり | ||
Todo新規作成 | POST | /todos/ | あり | TodoCreateRequestDto | |
Todo更新 | PUT | /todos/id/ | あり | TodoCreateRequestDto | |
Todo削除 | DELETE | /todos/id/ | あり |
URI | Cors | WriteHeader | Auth | SetHttpContext |
---|---|---|---|---|
/ | x | x | x | x |
/toods/*/ | ○ | ○ | ○ | ○ |
/auth/sign_in/ | ○ | ○ | x | ○ |
/auth/sign_up/ | ○ | ○ | x | ○ |
/auth/user/*/ | ○ | ○ | ○ | ○ |
touch .env
下記環境変数をセット
変数名 | 説明 |
---|---|
GO_MODE | 稼働環境 |
DB_USER | DBユーザー |
DB_PASSWORD | DBユーザーパスワード |
DB_HOST | DBホスト |
DB_NAME | データベース名 |
SECRET_HASH_KEY | セッションキー |
MAIL_AUTH_EMAIL | メール送信アカウントのメールアドレス |
MAIL_AUTH_PASSWORD | メール送信アカウントのパスワード |
MAIL_FROM_NAME | メール送信元名 |
MAIL_FROM_EMAIL | メール送信元のアドレス |
make setup
make start
イメージビルドとDB作成・マイグレーション
DB作成
DBマイグレーション
シードデータ投入
APIスタート(Dockerコンテナ起動)
APIストップ(Dockerコンテナ停止)
Dockerサーバーコンテナに ash で入る
Docker DBコンテナに bash で入る