1. 今回の作業概要

アサーションCheckの分析APIに、PostgreSQLへのデータ保存機能を実装した。

これまでは、ユーザーが入力した内容をAmazon Bedrockで分析し、その結果をフロントエンドへ返すだけだった。

今回の実装により、認証済みユーザーの分析内容と分析結果をPostgreSQLに保存できるようになった。

また、保存処理にはDBトランザクションを採用し、途中でエラーが発生してもデータの整合性を維持できる構成にした。

実装した機能


2. 処理の全体像

実装前

Next.js
   ↓
POST /api/analysis
   ↓
JWT認証
   ↓
BedrockによるAI分析
   ↓
分析結果を返す

実装後

Next.js
   ↓
POST /api/analysis
   ↓
JWT認証
   ↓
入力内容のバリデーション
   ↓
Cognitoユーザーに対応するDBユーザーを取得
   ↓
BedrockによるAI分析
   ↓
PostgreSQLへ保存
   │
   ├── records
   │     ├── user_id
   │     ├── situation
   │     └── response
   │
   └── analysis_results
         ├── record_id
         ├── assertive_score
         ├── aggressive_score
         ├── non_assertive_score
         ├── feedback
         └── improvement
   ↓
分析結果をNext.jsへ返す

分析結果を画面に表示するだけでなく、後から履歴として参照できる基盤が完成した。