Go言語学習29日目:API全体をテストしてみた!DynamoDBとの連携を総チェック!

Go言語学習29日目

ついにGo言語API開発の29日目

今日はこれまでに作ってきたPOST(登録)/GET(取得)API
ちゃんと動くかどうかを、実際にPostmanやcurlでテスト&デバッグしてみました。

kunio-ud-all.com

まぁ、実装よりコード確認ですね。 1日30分のGo言語の学習もなかなか面白かったです。

力にするためには、仕事で使えれば良いのですが、、、


今日の目的

✅ POST /items → JSONデータを受け取り、DynamoDBに登録できるか? ✅ GET /items/{UserID} → 登録されたデータを正しく取得できるか? ✅ エラー時のレスポンスが適切か?(400/404/500など)


テスト準備

起動コマンド(main.go 実行)
go run main.go

ログにこんな表示が出ればOK:

🚀 サーバー起動中:http://localhost:8080

1. POSTリクエストのテスト

curl編
curl -X POST http://localhost:8080/items \
  -H "Content-Type: application/json" \
  -d "{\"UserID\": \"u999\", \"Name\": \"テスト太郎\", \"Age\": 28}"
期待されるレスポンス
{
  "message": "登録成功"
}

2. GETリクエストのテスト

curl編
curl http://localhost:8080/items/u999
レスポンス(正常時)
{
  "UserID": "u999",
  "Name": "テスト太郎",
  "Age": 28
}
レスポンス(存在しないID)
{
  "error": "データが見つかりません"
}

3. エラーハンドリング確認

条件 ステータス 内容
UserID空でPOST 400 UserIDとNameは必須です
存在しないIDでGET 404 データが見つかりません
DynamoDBとの接続失敗など 500 DynamoDBからの取得に失敗しました

デバッグのポイント

🪵 ログを確認することで、リクエストの流れやエラー箇所を追える!
  • 📥 POST /items 受信
  • 🔍 GET /items/u999
  • ⚠ エラー [400]: UserIDとNameは必須です

ログ出力があると、エラーの特定が本当にラクになります。。


今日のチェックリストまとめ

✔ POSTでDynamoDBにデータが登録の確認ができた ✔ GETで登録済みデータを取得の確認ができた ✔ 存在しないID、入力エラーのときも正しいレスポンスが返ってきた ✔ ログ出力もデバッグに役立った


以上となります。引き続きよろしくお願いいたします。