Docker version 20.10.12, build e91ed57
docker-compose version 1.29.2, build 5becea4c
- go
- docker desktop
- direnv(mac の場合)
$ docker-compose up -d #DBコンテナ起動
$ docker-compose down #DBコンテナ停止
- setup environment/環境変数を設定(内容は.env.sample ファイル参照)
$ export PORT=<PORT> $ export MYSQL_DSN=<MYSQL_DSN> $ export ALLOW_CORS_ORIGIN=<ALLOW_CORS_ORIGIN>
- command/ローカルで api server を起動
$ make run #go run ./cmd/api/main.go
- check endpoint/ブラウザで動作確認
$ localhost:<PORT>/version #ex localhost:8080/version $ localhost:<PORT>/healthz #ex localhost:8080/healthz
- 画面キャプチャ
$ make test #go test ./...
$ curl -X GET localhost:8080/version #バージョン確認(動作確認も兼ねています)
$ curl -X GET localhost:8080/v1/user/{id} -H "Content-Type: application/json" #idを指定して該当のuserを取得
$ curl -X GET localhost:8080/v1/user/all -H "Content-Type: application/json" #userテーブルの一覧(全件)を取得
$ curl -X POST localhost:8080/v1/user -H "Content-Type: application/json" --data-raw '{"name": "user"}' #usersテーブルに指定したnameのuserレコードを追加
$ curl -X DELETE localhost:8080/v1/user/{id} -H "Content-Type: application/json" #idを指定して該当のuserをテーブルから削除
- command: 各 pkg を初期化
- config: 設定を管理
- domain: 目的の明確化
- handler: ルーティング
- infrastructure
- persistence: クエリ
- io: DB 接続
- middleware: リクエストの前処理等
- service: 複数の UseCase を纏める
- server: API Server の設定
- version: tool バージョン管理
- テンプレートエンジン 2023/2/6 up
- csv インポート
- csv エクスポート
- ファイルアップロード
- メール送信
- gorilla → chi 2023/2/11 up